Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel GetElementsByClassName无法获取类InnerText_Excel_Vba_Getelementsbytagname_Getelementsbyclassname_Getelementsbyname - Fatal编程技术网

Excel GetElementsByClassName无法获取类InnerText

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

我不知道如何获取elementsbyclassname。我有下面的标签。我可以通过执行div并列出其项号来执行getelementsbytagname,但我想在这个实例中使用类名item 2。在网页上,这里是标签

<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