我得到的错误是“对象变量或未设置块变量”,参考代码的“ .click”行。我是VBA编码的新手,我尝试了各种不同的方法,但是我无法弄清楚。有什么想法吗?
代码的重点是启动一个新的Internet Explorer,导航到一个工作站点,单击一个下拉菜单,一次单击选项卡,然后单击Enter。理想情况下,我只想单击“确定”按钮,但是我遇到了同样的错误,因此如果你们可以告诉我我在做错了什么以获取错误,那么我可能会进行切换。
Sub GetData()
Dim objIE As InternetExplorer
Dim Ele As Object
Set IE = New InternetExplorer
IE.Visible = True
IE.navigate "http://workurl"
Do While IE.Busy = True Or IE.readyState <> 4: DoEvents: Loop
IE.document.getElementsByName("staffGroupCombo")(0).Click
Application.Wait (Now() + TimeValue("00:00:01"))
SendKeys "+{TAB}"
Application.Wait (Now() + TimeValue("00:00:01"))
SendKeys "+{~}"
'Just placeholder stuff I sometimes need to copy
'Do While IE.Busy = True Or IE.readyState <> 4: DoEvents: Loop
'Debug.Print ele.ClassName
'Debug.Print ele.tagName
'Debug.Print ele.ID
有时在单行中构造,如
IE.document.getElementsByName("staffGroupCombo")(0).Click
不起作用。我不知道为什么。
尝试一下:
Set Ele = IE.document.getElementsByName("staffGroupCombo")
Ele(0).Click
如果页面没有像K.Davis那样完全加载,您可以在IE说他准备好后插入一个中断。
Do While IE.Busy = True Or IE.readyState <> 4: DoEvents: Loop
Application.Wait (Now() + TimeValue("00:00:05"))