Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.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 VBA按类名查询div元素_Vba_Excel - Fatal编程技术网

使用Excel VBA按类名查询div元素

使用Excel VBA按类名查询div元素,vba,excel,Vba,Excel,我正在尝试将具有特定类名的div元素的数据获取到Excel中,如: <div class="myClass"> <span>Text1</span> <span>Text2</span> </div> 这将返回错误: 运行时错误:“438”:对象不支持此属性或方法。错误在联机调试中。打印 我已激活以下引用: 微软HTML对象库 Microsoft Internet控件 我希望能够选择第一个或第二个跨距上的文本并

我正在尝试将具有特定类名的div元素的数据获取到Excel中,如:

<div class="myClass">
   <span>Text1</span>
   <span>Text2</span>
</div>
这将返回错误: 运行时错误:“438”:对象不支持此属性或方法。错误在联机调试中。打印

我已激活以下引用: 微软HTML对象库 Microsoft Internet控件


我希望能够选择第一个或第二个跨距上的文本并将其粘贴到单元格上,我如何才能做到这一点?

我过去是这样做的:

Set oElement = oHtml.getElementsByClassName("myClass")
i = 0
While i < oElement.Length
    Debug.Print oElement(i).innerText
  i = i + 1
Wend
Set oElement=oHtml.getElementsByClassName(“myClass”)
i=0
而我的长度
Debug.Print oElement(i).innerText
i=i+1
温德
您可能需要innerHtml吗?

这对我很有用:

Dim oHtml As HTMLDocument
Dim oElement As Object

Set oHtml = New HTMLDocument

With CreateObject("WINHTTP.WinHTTPRequest.5.1")
    .Open "GET", "http://www.example.com", False
    .send
    oHtml.body.innerHTML = .responseText
End With

Set dados = oHtml.getElementsByClassName("myClass")(0).getElementsByTagName("span")

i = 0
For Each oElement In dados
    Sheets("Sheet1").Range("A" & i + 1) = dados(i).innerText
    i = i + 1
Next oElement

请参考此@Santosh我的问题与此不同,但我通过您的链接找到了解决方案@努诺诺盖拉不要让我们绞死,这是什么?@safetyOtter看到我下面的答案,希望这对罪人有帮助。RTML是个好主意。Length返回错误:运行时错误439。Objecto不支持此属性或方法
Dim oHtml As HTMLDocument
Dim oElement As Object

Set oHtml = New HTMLDocument

With CreateObject("WINHTTP.WinHTTPRequest.5.1")
    .Open "GET", "http://www.example.com", False
    .send
    oHtml.body.innerHTML = .responseText
End With

Set dados = oHtml.getElementsByClassName("myClass")(0).getElementsByTagName("span")

i = 0
For Each oElement In dados
    Sheets("Sheet1").Range("A" & i + 1) = dados(i).innerText
    i = i + 1
Next oElement