gpt4 book ai didi

vba - 将 IE 自动化代码更改为 XML 时出错

转载 作者:行者123 更新时间:2023-12-04 21:10:03 25 4
gpt4 key购买 nike

我最近开始使用 XML 自动化,在更改了一些基本的 IE 自动化代码之后,我似乎遇到了错误。这是HTML:

<tbody>
<tr class="group-2 first">
<td class="date-col">
<a href="/stats/matches/mapstatsid/48606/teamone-vs-merciless">
<div class="time" data-time-format="d/M/yy" data-unix="1498593600000">27/6/17</div>
</a>
</td>
......SOME MORE HTML HERE......
</tr>
......SOME MORE HTML HERE......
</tbody>

这是我在 Excel VBA 中使用的代码:
Sub readData()

Dim XMLPage As New MSXML2.XMLHTTP60
Dim html As New MSHTML.HTMLDocument

XMLPage.Open "GET", "https://www.hltv.org/stats/matches", False
XMLPage.send

If XMLPage.Status <> 200 Then MsgBox XMLPage.statusText
html.body.innerHTML = XMLPage.responseText


For Each profile In html.getElementsByTagName("tbody")(0).Children
Debug.Print profile.getElementsByClassName("date-col")(0).getElementsByTagName("a")(0).getAttribute("href") 'Run time error '438' here
Next

End Sub

我在调试打印代码中收到运行时错误“438”。上课时似乎正在发生,但我不确定为什么。例如,如果我使用它,它可以正常工作:
Debug.Print profile.innertext

最佳答案

为我工作:

Sub readData()

Dim XMLPage As New MSXML2.XMLHTTP60
Dim html As New MSHTML.HTMLDocument, links, a, i

XMLPage.Open "GET", "https://www.hltv.org/stats/matches", False
XMLPage.send

If XMLPage.Status <> 200 Then MsgBox XMLPage.statusText
html.body.innerHTML = XMLPage.responseText

Set links = html.querySelectorAll("td.date-col > a")
Debug.Print links.Length

For i = 0 To links.Length - 1
Debug.Print links(i).href
Next

Set links = Nothing
Set html = Nothing

End Sub

仅供引用,当我使用 For Each 时循环 links集合 Excel 会可靠地崩溃,所以我会留在显示的循环中

关于vba - 将 IE 自动化代码更改为 XML 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44791994/

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