我正在尝试抓取和重新格式化HTML中的某些数据。这是我之前做过的事,没什么问题,但是我遇到了错误。
标记“ .net”只是因为错误消息和解决方案存在很多重叠。
产生它的最简单情况:
Sub main()
Dim ie As InternetExplorer
Dim htmlDoc As HTMLDocument
Set ie = New InternetExplorer
ie.Visible = True
' Unfortunately I'm not able to post the true link.
' But it is on github in case that's relevant.
ie.navigate "https://pages.github.XXXX.net/XXXXX/XXX-XXXXXX/dev/XXXXXX/data/full/XXXXXX.html"
Do While ie.Busy
DoEvents
Loop
Set htmlDoc = ie.document
End Sub
哪个抛出“运行时错误'-2147467259(80004005)':自动化错误。未指定的错误”。此行“ Set htmlDoc = ie.document”会发生此错误。当我的等待条件为“在while.busy或ie.readyState <> readyStateComplete时执行”时,这也发生了
但是,仅使用任何旧链接都可以。
Sub main()
Dim ie As InternetExplorer
Dim htmlDoc As HTMLDocument
Set ie = New InternetExplorer
ie.Visible = True
' Unfortunately I'm not able to post the true link.
' But it is on github in case that's relevant.
ie.navigate "https://stackoverflow.com/"
Do While ie.Busy
DoEvents
Loop
Set htmlDoc = ie.document
End Sub
当我给出github实例的readyState时,如果有帮助,它会显示为'0'。从我读过的其他问题来看,似乎问题在于InternetExplorer对象已关闭,但是我不确定这是怎么回事。
建议在其他地方解决此问题,以“清理”项目(剪掉所有代码,保存,然后放回去),但这对我不起作用。
有什么想法吗?
答案 0 :(得分:0)
在这里找到答案:Excel VBA Controlling IE local intranet
github链接是具有更严格安全性的本地Intranet。在这种情况下,Internet Explorer实例显然是挑剔的。
所以我需要使用
Set ie = New InternetExplorerMedium
代替
Set ie = New InternetExplorer