我的excel宏不一致地产生错误

时间:2016-11-17 17:53:59

标签: excel vba excel-vba runtime-error

我正在开发一个宏来自动化一些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

网址已更改为公开网站,表单条目暂时已注释掉。

1 个答案:

答案 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"

如果您想参考验证和机构,您也必须为它们实施此方案,并等到所有三个变量都是非空的。如果要下载的页面非常多,您可能还需要设置超时或最大重试次数。