它仍然无法循环“详细信息蓝色”类名,我想获得附加图像的数据。
Do While (.Busy Or .readystate <> 4)
DoEvents
Loop
For Each ele In .document.all
If ele.classname = "details_title" Then
RowCount = RowCount + 1
sht.Range("A" & RowCount) = ele.innertext
ElseIf ele.classname = "details blue" Then
i = 1
For x = 0 To ele.Length 'error at this line
i = i + 1
sht.Cells(RowCount, i).Value = ele.Item(x).innertext 'error at this line
Next x
End If
Next ele
=
答案 0 :(得分:0)
您正在将这些元素一次一个地读入ele
,因此(a)不会有length
属性,因为它不是集合*而是(b)您不会同时获取所有“细节蓝色”元素
我怀疑你可能想要使用getElementsByClassName
方法。您可以将整个For Each ele
替换为Next ele
业务:
Dim detailsTitles As IHTMLElementCollection
Dim detailsBlues As IHTMLElementCollection
Set detailsTitles = document.getElementsByClassName("details_title")
' There should only be one of these
If (detailsTitles.length = 1) Then
RowCount = RowCount + 1
sht.Range("A" & RowCount) = detailsTitles.item(0).innerText
Else
' do something - e.g. report an error to the user
End If
Set detailsBlues = document.getElementsByClassName("details blue")
i = 1
For Each ele in detailsBlues
i = i + 1
sht.Cells(RowCount, i).Value = ele.innerText
Next ele
如果您实际上有多个“details_title”项目又有多个关联的“详细信息蓝色”项目,则需要采用不同的方法(可能会查看“details_title”项目的parentElement
)
*某些元素可能有一个名为length
的属性,但这不是同一个东西