首页 > 解决方案 > VBA Internet Explorer - 对象变量消失

问题描述

我正在尝试使用 VBA 学习网络抓取,并且在最基本的第一步中遇到了问题。

问题(我认为)是在执行 IEObject.Navigate 之后,IEObject 的所有变量都消失了。所以我得到了错误

“运行时错误‘426’:远程服务器机器不存在或不可用”

在第 8 行。任何帮助表示赞赏。

代码:

Sub VBAWeb()

Dim IEObject As InternetExplorer
Set IEObject = New InternetExplorer
IEObject.Visible = True
IEObject.Navigate URL:="https://google.com"

Do While IEObject.Busy = True Or IEObject.ReadyState <> READYSTATE_COMPLETE
    Application.Wait Now + TimeValue("00:00:01")
Loop

Debug.Print IEObject.LocationURL

End Sub

标签: excelvbainternet-explorerweb-scraping

解决方案


我建议您尝试在下面运行代码可能有助于解决问题。

Sub demo()

    Dim URL As String
    Dim IE As Object

    Set IE = CreateObject("InternetExplorer.Application")

    IE.Visible = True

    URL = "https://www.microsoft.com"

    IE.Navigate URL

    Do While IE.ReadyState = 4: DoEvents: Loop  
    Do Until IE.ReadyState = 4: DoEvents: Loop   

    Debug.Print IE.LocationURL

    Set IE = Nothing

End Sub

您可以看到 IE 对象的创建方式不同。此外,循环有点不同。


推荐阅读