Code: Select all
Sub HtmlSelect()
Dim obj As Object, i As Integer, j As Integer
Dim a As Variant, b As Variant, c(0, 2) As Variant
With Sheets(1)
For Each obj In .Shapes
If Left(obj.Name, 4) = "HTML" Then
a = Split(obj.DrawingObject.Object.DisplayValues, ";") '1 Display value if Data is value Q:What is ";"
b = Split(obj.DrawingObject.Object.Selected, ";") '2 Detect Object is Selected or Data value Q:What is .selected
i = Application.Match("True", b, 0) - 1 '3 Convert True to 0 false to 1 Q:Why match false not error
With Sheets("Sheet2")
If j = 0 Then '4 If J is unidentify represent to 0, right?
'If .Range("a1") = "" Then 'not use
.Range("a1").Value = a(i) '5 a is array in object 1, right
'Else
'.Range("a" & .Rows.Count).End(xlUp).Offset(1, 0).Value = a(i) 'not use
'End If
Else
c(0, j - 1) = a(i)
End If
End With
j = j + 1
End If
Next obj
With Sheets("sheet2")
.Range("a" & .Rows.Count).End(xlUp).Offset(1, 0).Resize(1, 3).Value = c
End With
End With
End Sub
ผมอ่านโค้ดแล้วสรุปมาได้ดังนี้น่ะครับ ใน code ผม note ไว้เป็นภาษาอังกฤษแบบงูๆปลาๆ ในบรรทัดที่สงสัย ผมเลยขออธิบายเป็นไทยไว้ตรงข้างล่างด้วยน่ะครับ
1 ให้แสดงค่า ถ้า object นั้นเป็นแบบ value Q:";" หมายถึงอะไร
2 ตรวจสอบว่า obj นั้นเป็นแบบ selected หรือเปล่า Q: โค้ด .selected มีความหมายว่าอะไร
3 เปลี่ยนค่า b จาก true เป็น 0 และ fase เป็น 1 Q:ทำไม match false แล้วไม่ error แถม -1 แล้วยังกลายเป็น 1 อีก
4 ถ้า J ไม่ได้ระบุค่า ให้แสดงค่า 0 ใช่หรือเปล่า
5 a เป็น array ของ object 1 ใช่หรือเปล่า
และมีบาง code ที่ตัดออกได้ เพราะผมไม่ได้จะเก็บข้อมูลเรียงลงมาน่ะครับ ทำให้โค้ดสั้นลงได้อีกนิด
หลังจากข้อ 5 แล้วผมก็ไม่รู้เรื่องจนยังนึกไม่ออกแล้วน่ะครับว่าจะถามยังไงดี
