我正在开发一个宏来自动化一些Web浏览器的东西,并且存在间歇性的运行时错误91"对象变量或者没有设置块变量"。我一直在玩我如何声明和创建我的浏览器对象,但没有任何工作。
Sub Morning_Script()
Dim WebBrowser As Object
Set WebBrowser = New InternetExplorerMedium
WebBrowser.Visible = True
WebBrowser.navigate "www.google.com"
While WebBrowser.Busy = True
DoEvents
Wend
WebBrowser.document.getElementById("lst-ib").Value = "test"
'WebBrowser.document.getElementById("verify").Value = Worksheets("Sheet1").Range("B2")
'WebBrowser.document.getElementById("institution").Value = "xxx"
'Worksheets("Sheet1").Range("B1").Clear
'Worksheets("Sheet1").Range("B2").Clear
End Sub
网址已更改为公开网站,表单条目暂时已注释掉。
答案 0 :(得分:0)
如果您希望避免使用固定计时器,请尝试以下方法:
Dim objElement As Object: Set objElement = Nothing
While objElement Is Nothing
Set objElement = WebBrowser.document.getElementById("lst-ib")
DoEvents
Wend
objElement.Value = "test"
如果您想参考验证和机构,您也必须为它们实施此方案,并等到所有三个变量都是非空的。如果要下载的页面非常多,您可能还需要设置超时或最大重试次数。