我正在为Access使用更长的脚本,有一次需要检查Web服务中文件的最新版本(文件名)。仅在需要进行激活的浏览器中才能访问此Web服务。我已经设法打开了Internet Explorer窗口(尽管不应该看到)。但是之后,我得到了错误
对象“ IWebBrowser2”的“忙碌”方法失败
现在我有以下代码:
Dim appIE As Object
Dim sURL as String, infoStr as String
Set appIE = GetObject("new:{D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E}") 'class id of InternetExplorerMedium
sURL = "https://webservice.example.com:1234/Server/test.jsp?parameter=value"
With appIE
.Navigate sURL, Headers:=CreateBasicAuthHeader("MyUsername", "MyPassword")
.Visible = False
End With
Do While appIE.Busy Or appIE.ReadyState <> 4
DoEvents
Loop
infoStr = appIE.Document.getElementsByTagName("body").item.innerText
在行之前效果很好:
Do While appIE.Busy Or appIE.ReadyState <> 4
如果我退出循环,则会出现相同的错误,但对于{Document {1}}行中的'Document'而不是'Busy'。考虑到infoStr = appIE.Document.getElementsByTagName("body").item.innerText
也没有影响(我可以看到浏览器窗口),我认为.Visible = False
之后对appIE
的任何操作均不起作用。但是我不知道为什么。
在提到的错误之后搜索了一段时间后,我发现了3种可能的解决方案,但没有一个成功。
.Navigate
或.Busy
属性可防止在浏览器尚未完全加载站点时继续执行宏。我显然已经做到了。任何帮助或想法都将不胜感激。