Excel GetElementsByClassName无法获取类InnerText
我不知道如何获取elementsbyclassname。我有下面的标签。我可以通过执行div并列出其项号来执行getelementsbytagname,但我想在这个实例中使用类名item 2。在网页上,这里是标签Excel GetElementsByClassName无法获取类InnerText,excel,vba,getelementsbytagname,getelementsbyclassname,getelementsbyname,Excel,Vba,Getelementsbytagname,Getelementsbyclassname,Getelementsbyname,我不知道如何获取elementsbyclassname。我有下面的标签。我可以通过执行div并列出其项号来执行getelementsbytagname,但我想在这个实例中使用类名item 2。在网页上,这里是标签 <div class="column"> Projected Delivery Date: </div> <div class="column"> 11/28/2017
<div class="column">
Projected Delivery Date:
</div>
<div class="column">
11/28/2017
</div>
如果有人能解释如何修复我的代码,这样它就可以确定日期了?同样,我可以为div使用getelementsbytagname,但如果可能的话,我希望使用类名。我正在使用Excel中的VBA来完成此操作。这不是Java脚本,我让它工作了,它读取class=column的元素的内部文本,所以看看你在做什么,然后改变它,直到你能让它工作为止。 此外,还必须在“工具”>“引用”下将Microsoft HTML对象库添加到项目中
Sub sub1()
Dim hdoc As HTMLDocument
' your test HTML
sHtml = "<div class=""column"">" & vbCrLf & _
vbCrLf & _
"Projected Delivery Date:" & vbCrLf & _
vbCrLf & _
"</div>" & vbCrLf & _
vbCrLf & _
"<div class=""column"">" & vbCrLf & _
vbCrLf & _
"11/28/2017" & vbCrLf & _
"</div>"
Set hdoc = New HTMLDocument
hdoc.body.innerHTML = sHtml
For Each element In hdoc.getElementsByClassName("column")
Debug.Print element.innerText
Next
End Sub
不确定为什么可以使用column类循环所有元素。当您找到一个以预计交付日期为值的项目时,请在下一个索引中选择该项目。 我使用CSS类选择器获取所有匹配元素的节点列表并循环它
Dim nodeList As Object, i As Long
If htmlDoc Is Nothing Then Exit Sub
Set nodeList =htmlDoc.querySelectorAll(".column")
For i = 0 To nodeList.Length - 1
If InStr(nodeList.item(i).innerText, "Projected Delivery Date") > 0 Then
Debug.Print nodeList.item(i + 1).innerText
Exit For
End If
Next
Dim nodeList As Object, i As Long
If htmlDoc Is Nothing Then Exit Sub
Set nodeList =htmlDoc.querySelectorAll(".column")
For i = 0 To nodeList.Length - 1
If InStr(nodeList.item(i).innerText, "Projected Delivery Date") > 0 Then
Debug.Print nodeList.item(i + 1).innerText
Exit For
End If
Next