vba - IE.LocationURL 在 URL 未解析时返回错误
问题描述
我有一个基本的 VBA 脚本,可以打开 InternetExplorer 窗口,以便用户可以授权 OAuth2.0 连接。作为此过程的一部分,他们的浏览器被重定向到包含访问令牌的回调地址。目前,我将重定向 URL 设置为http://localhost。
该脚本在带有 MS Access 2010 和 Internet Explorer 11 的 Windows 10 上正常运行。但是,在另一台 Win 10 PC 上的 MS Access 2016 中,我收到错误消息-2147023179 Automation error The interface is unknown.
。我已经确认重定向 URL 是正确的,并且我还硬编码了一个可解析的重定向 URL,它也可以工作。
看来,当 InternetExplorer 遇到无法解析的 URL 时,它会中断与 IE 实例的 VBA 连接。我正在寻找可以帮助我规避此问题的信息。
下面的代码是我正在使用的:
Dim IE as InternetExplorer
' create IE instance
Set IE = CreateObject("InternetExplorer.Application")
Dim url as String: url = "www.some-website.com"
' show IE
IE.Visible = True
' navigate to OAuth authorize URl
IE.Navigate url
' wait for page to load
Do While IE.ReadyState = 4: DoEvents: Loop
' loop until callback url in address bar
' ERROR HAPPENS HERE
While InStr(1, IE.LocationURL, "http://localhost") <= 0
DoEvents
Wend
解决方案
请尝试使用InternetExplorerMedium对象而不是InternetExplorer对象。更多详细信息,您可以查看以下链接:
使用 InternetExplorerMedium 对象时,您可能需要添加对 Microsoft Internet 控件的引用,您可以查看此链接:
推荐阅读
- python - python中的随机音频讲座不起作用:pygame.error:无法打开'48.mp3'
- python - Python:根据每个产品的日期返回第一个值
- python - IndexError:通过for循环列出索引超出范围错误
- c# - C# 创建下载器
- linux - 在 Linux Alpine docker 容器中自定义 shell 启动
- get - 仅介子布尔选项 - 可重现的构建
- node.js - 为 CRUD 应用程序配置 mongoDB IP 地址
- powerbi - Power BI:将列拆分为行
- android - 当我按下系统后退按钮且未登录时,登录页面将我发送到主页
- c++ - ;=10 Arduino 有这样的用途吗?