Excel VBA Web抓取-自动化错误/未指定错误

时间:2018-06-22 19:14:13

标签: .net vba excel-vba excel

我正在尝试抓取和重新格式化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对象已关闭,但是我不确定这是怎么回事。

建议在其他地方解决此问题,以“清理”项目(剪掉所有代码,保存,然后放回去),但这对我不起作用。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

在这里找到答案:Excel VBA Controlling IE local intranet

github链接是具有更严格安全性的本地Intranet。在这种情况下,Internet Explorer实例显然是挑剔的。

所以我需要使用

Set ie = New InternetExplorerMedium

代替

Set ie = New InternetExplorer