gpt4 book ai didi

vba - 如何调暗 getElementsBy* 结果

转载 作者:行者123 更新时间:2023-12-02 11:09:12 24 4
gpt4 key购买 nike

我正在通过 VBA 进行一些互联网搜索,有一次我得到了这一行

Set valueResult = currPage.getElementById("rg_s").getElementsByTagName("IMG")

其中 currPage 被声明为 HTMLDocument

我想知道如何Dim valueResult来实现:

  1. IntelliSense(vba 自动完成)结果
  2. 更好的执行时间(通过使用特定的而不是默认的 Variant 类型)

当我查看“本地”窗口时,我被告知 Set 为其提供了 DispHTMLElementCollection 类型,但当我 Dim 时,这不是一个选项。我有read getElementsBy* 实际上返回 Node List与数组相反,所以我一直在尝试遵循该途径,但找不到任何特定于 VBA 的内容。

那么我应该如何声明它? - 目前我刚刚得到 Dim valueResult As Object 但这并不比 Variant 好并且不提供 IntelliSense 提示。

注意。我勾选了 Microsoft HTML 对象库

最佳答案

它应该是一个 IHTMLElementCollection 类型。

Dim valueResult As IHTMLElementCollection

'// your code here

Set valueResult = currPage.getElementById("rg_s").getElementsByTagName("IMG")

getElementsByTagName() 方法将返回一个 Collection,因为可能存在多个匹配项。 getElementById() 方法将返回一个元素,因此 IHTMLElement

<小时/>

简单示例:

Sub test()

Dim col As IHTMLElementCollection
Dim item As IHTMLElement

Set IE = CreateObject("InternetExplorer.Application")

IE.Navigate "http://www.google.co.uk"

While IE.ReadyState <> 4
DoEvents
Wend

Set col = IE.Document.getElementsByTagName("a")

For Each i In col
Set item = i
Debug.Print item.outerText
Next

IE.Quit

End Sub

关于vba - 如何调暗 getElementsBy* 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43066307/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com