webscraping时VBA运行时错误91的问题

webscraping时VBA运行时错误91的问题,vba,excel,runtime-error,Vba,Excel,Runtime Error,我正在使用VBA进行一些网页抓取。该代码在我的计算机上使用excel 2016和IE10运行良好。但是,当在其他机器上运行(具有IE11)时,我得到运行时错误91(未设置对象或变量)。以下是我的部分代码: Dim IE As Object Dim oHTML_Element As IHTMLElement Set w = New InternetExplorer w.Navigate url w.Visible = True Do While (w.Busy Or w.READYSTATE

我正在使用VBA进行一些网页抓取。该代码在我的计算机上使用excel 2016和IE10运行良好。但是,当在其他机器上运行(具有IE11)时,我得到运行时错误91(未设置对象或变量)。以下是我的部分代码:

Dim IE As Object
Dim oHTML_Element As IHTMLElement

Set w = New InternetExplorer
w.Navigate url
w.Visible = True

Do While (w.Busy Or w.READYSTATE <> READYSTATE.READYSTATE_COMPLETE)
DoEvents
Loop

Set HTMLDoc = w.Document

If Not HTMLDoc.all.Item("userName") Is Nothing Then

HTMLDoc.all.Item("userName").Value = zuser
HTMLDoc.all.Item("password").Value = zpass
HTMLDoc.all.Item("submit").Click

Do While (w.Busy Or w.READYSTATE <> READYSTATE.READYSTATE_COMPLETE)
DoEvents
Loop

For Each oHTML_Element In HTMLDoc.getElementsByTagName("a")
If (InStr(oHTML_Element.href, "studentEnquiry.do?ex=preEx") > 0) Then
oHTML_Element.Click
Exit For
End If
Next

Do While (w.Busy Or w.READYSTATE <> READYSTATE.READYSTATE_COMPLETE)
DoEvents
Loop
'Application.Wait (Now + TimeValue("0:00:4"))
HTMLDoc.all.Item("StudentNumber").Value = Worksheets("sheet1").Cells(row, "B").Value

End if

我试图延迟执行,希望页面已完全加载,但这并没有解决问题。我非常感谢您的帮助。

在这一点上,
row
的价值是什么?您的样本中没有
Dim
ed。如果是0,那就是你的问题。还有,W在哪里?您是否添加了对Microsoft Internet控件的引用??在爆炸的行上放置一个断点,检查所有涉及的对象:其中一个是
Nothing
@Mat'sMug,这是我试图填写的名为“StudentNumber”的html元素。我就是搞不懂为什么有些机器上会出现这种情况,而有些机器上却运行得很好。那么,你有你的答案了!现在处理运行时错误,并找出
StudentNumber
元素不存在时的解决方法。此时
行的值是多少?您的样本中没有
Dim
ed。如果是0,那就是你的问题。还有,W在哪里?您是否添加了对Microsoft Internet控件的引用?
?在爆炸的行上放置一个断点,检查所有涉及的对象:其中一个是
Nothing
@Mat'sMug,这是我试图填写的名为“StudentNumber”的html元素。我就是搞不懂为什么有些机器上会出现这种情况,而有些机器上却运行得很好。那么,你有你的答案了!现在处理运行时错误,并找出
StudentNumber
元素不存在时的解决方法。
HTMLDoc.all.Item("StudentNumber").Value = Worksheets("sheet1").Cells(row, "B").Value