如果您确实搜索过答案,您可能希望下次扩大范围。有很多关于 DOM 和 VBA 的问题和答案。
在 HTMLElement 上使用 getElementById 而不是 HTMLDocument
虽然问题(和答案)并不完全是您想要的,但它会向您展示如何创建可以使用的东西。
您需要混合使用getElementById()
和getElemenetsByTagName()
来检索您想要的“你好”
例如:Document.getElementById("something").getElementsByTagName("tr")(1).getElementsByTagName("td")(2).innerText
- 获取元素“某物”
- 在“something”中获取所有“tr”标签(特别是索引 1 处的标签)
- 在返回的 tr 标签内获取所有“td”标签(特别是索引 2 处的标签)
- 获取上一个结果的innerText
这些对象使用基于 0 的数组,因此第一项是 item(0)。
更新
document.getElementById()
将返回一个(单数) IHTMLElement (将包括其所有子元素),如果不存在则返回 nothing/null。
document.getElementsByTagName()
将返回 IHTMLElement 的集合(同样,每个元素都将包含其所有子元素)。(如果不存在,则为空集合)
document.getElementsByTagName("tr")
这将返回“document”元素内的所有 tr 元素。
document.getElementsByTagName("tr")(0)
将返回集合中的第一个(单数)IHTMLElement。(注意最后的索引?)
VBA 中没有(我能找到的)InternetExplorer 对象的“兄弟”功能,因此您必须使用子索引手动完成。
使用 DOM 函数是一种简洁的方法。它比仅查看链“Element.Children(0).children(1).children(2)”要清晰得多,因为如果不手动查找索引,您将不知道索引的含义。