是否有一种万无一失的方式让脚本等到Internet Explorer完全加载?
两者oIE.Busy和/或oIE.ReadyState都没有按照他们应该的方式工作:
Set oIE = CreateObject("InternetExplorer.application")
oIE.Visible = True
oIE.navigate ("http://technopedia.com")
Do While oIE.Busy Or oIE.ReadyState <> 4: WScript.Sleep 100: Loop
' <<<<< OR >>>>>>
Do While oIE.ReadyState <> 4: WScript.Sleep 100: Loop
Run Code Online (Sandbox Code Playgroud)
还有其他建议吗?
我在同一行上得到两个不同的错误.有时候这个:
自动化错误:调用的对象已与其客户端断开连接
而有时:
界面未知
重现错误的最小代码:
Sub mcve()
Dim ie As Object
Dim www As String
Set ie = New InternetExplorerMedium
www = "http://www.stackoverflow.com"
ie.navigate www
ie.Visible = False
While ie.ReadyState <> 4 ' <~~~~~~~~~~~~~~~~~~~~~~~~ Error occurs here
DoEvents
Wend
End Sub
Run Code Online (Sandbox Code Playgroud)
这需要一个参考:工具>参考...> Microsoft Internet Controls
While ie.ReadyState <> 4第二次发生错误.我该如何解决?
我所做的只是将一段代码复制粘贴到一个不同的子代码中,并完成我的新子代码并更改我想要导航的URL.第一个子仍然有效,但第二个没有.我很难过.
Dim ie As InternetExplorer
Dim html As HTMLDocument
Set ie = New InternetExplorer
ie.Visible = False
ie.navigate "http://cesp.hma.eu/Contacts"
With ie
Do Until .READYSTATE = 4: DoEvents: Loop
Do While .Busy: DoEvents: Loop
End With
Set html = ie.document
Set ie = Nothing
Application.StatusBar = ""
Run Code Online (Sandbox Code Playgroud)
使用F8逐步检查代码,似乎URL忽略了ie.Visible = False(当我到达时它打开With ie),然后弹出错误Do While .Busy: DoEvents: Loop
老实说,我不知道从哪里开始寻找解决这个问题,因为我从字面上只改变了URL,没有别的.我最好的办法是关闭我的工作簿并重新打开它,但问题仍然存在.您可以提出的任何提示,解释或解决方案将不胜感激.
Dim IE as New InternetExplorer
IE.Visible = True
IE.Navigate("http://www.google.com")
Do Until IE.Busy = False
Loop
IE.document.getElementsByTagName("Input")(3).Value = "Search Term"
IE.document.Forms(0).Submit <------ This line results in error.
Run Code Online (Sandbox Code Playgroud)
错误状态运行时错误 70:“权限被拒绝”
请不要建议更改代码。代码没有任何问题。此宏适用于 10 台计算机中的 9 台。这不是时间问题(即使我手动执行,我仍然会收到错误消息)。我知道还有其他方法可以声明 Internet Explorer 对象。我试过使用 CreateObject 和所有这些东西。这都不重要。以管理员身份运行也无济于事。
这只是问题的一个简单示例(我们实际上正在自动化更复杂的任务)。所以请不要问“为什么要进行goodle搜索?” 请不要问“你想做什么”。我需要解决这个问题。我不需要重新编写我的代码。
我们使用 Windows XP、Internet Explorer 7 和 Office 2003。某些原因导致随机人员无法自动化 Internet Explorer。不是用户问题,是电脑问题。我的意思是在罪魁祸首的计算机上,无论哪个用户登录,都没有人可以自动化。但同一个用户可以使用不同的计算机,一切都很好。因此,它可能是本地计算机上的注册表设置或类似的设置。这里所有的电脑都以相同的方式设置,相同的规格,相同的软件。
我用谷歌搜索和谷歌搜索,谷歌搜索和谷歌搜索。不幸的是,运行时错误 70 似乎是一个包罗万象的问题,许多用户报告了不同症状的错误。就我而言,我还没有找到解决方案,否则我不会在这里问。
我们可以解决它的唯一方法是让 IT 完全重新加载硬盘驱动器上的所有内容。干净的刷新,包括操作系统。这解决了问题,但也迫使用户将他们的机器重新设置为他们以前的方式,并重新安装所有软件和所有内容。这不是一个好的解决方案。机器上某处有一个设置会导致这种情况,否则刷新不会产生影响。我想知道那个设置是什么(我的感觉是它是一个注册表设置)。
任何帮助表示赞赏,谢谢。
automation vba shdocvw permission-denied internet-explorer-7
vba ×3
excel ×2
excel-vba ×2
automation ×1
readystate ×1
shdocvw ×1
vbscript ×1
web-scraping ×1
wsh ×1