getElementsByName“对象变量或未设置块变量”错误

问题描述 投票:0回答:1

我得到的错误是“对象变量或未设置块变量”,参考代码的“ .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
excel vba object getelementsbytagname
1个回答
0
投票

有时在单行中构造,如

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"))
© www.soinside.com 2019 - 2024. All rights reserved.