getElementsByName "Object variable or With Block Variable not set" error



我得到的错误是"对象变量或未设置块变量",指的是代码的".click"行。 我是 VBA 编码的新手,我已经尝试了各种不同的东西,但我无法弄清楚。 有什么想法吗?

代码的要点是启动一个新的 Internet Explorer,导航到工作站点,单击下拉列表,按 Tab 键,然后单击 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"))

相关内容

最新更新