我在VBA上相对较新(我了解基本知识,但其他知识不多),并且我试图建立一些代码来为我填写在线表单,但是当我运行代码时,出现438错误:
对象不支持此属性或方法
何时到达
ie.document.getElementById ("q")
我已将HTML对象库和Microsoft Internet控件添加到我的引用中。我看了很多在线论坛。我什至将整个脚本直接复制并粘贴到VBA中。什么都不会使它使用getElementById()
。这是我的代码:
Sub internetstuff()
Dim ie As Object
Set ie = CreateObject("internetexplorer.application")
ie.Visible = True
ie.navigate ("https://www.google.com/")
Set searchbx = ie.document.getElementById("q")
searchbx.Value = "Howdy!"
End Sub
应该发生的是,它应该打开InternetExplorer,转到Google,然后在搜索栏中填充“ Howdy!”。 相反,它仅打开google,然后我收到错误消息,并且它停止运行。
答案 0 :(得分:2)
因为"q"
不是ID
,所以是Name
。
您必须使用GetElementsByName
并选择第一个元素
尝试一下:
Sub internetstuff()
Dim ie As Object
Set ie = CreateObject("internetexplorer.application")
ie.Visible = True
ie.Navigate ("https://www.google.com/")
Do Until ie.ReadyState >= 4
DoEvents
Loop
Set searchbx = ie.document.getElementsByName("q")(0)
searchbx.Value = "Howdy!"
End Sub
我还添加了一个等待事件,以防加载谷歌需要时间。
答案 1 :(得分:0)
一种更简洁有效的方法是使用querySelector返回name属性的第一个匹配项
webview