MSHTML.HTMLElementCollection类型不匹配错误
我正在创建一个脚本代码以将数据复制到Excel。我的代码工作正常,直到找到我得到的元素错误MSHTML.HTMLElementCollection类型不匹配错误,html,excel,vba,web-scraping,Html,Excel,Vba,Web Scraping,我正在创建一个脚本代码以将数据复制到Excel。我的代码工作正常,直到找到我得到的元素错误类型不匹配 Function Login(ID As String, Pass As String) As Boolean Dim objIE As SHDocVw.InternetExplorer Dim ieDoc As MSHTML.HTMLDocument Dim UserID As MSHTML.HTMLInputElement Dim passwordID As MSHTML.HTM
类型不匹配
Function Login(ID As String, Pass As String) As Boolean
Dim objIE As SHDocVw.InternetExplorer
Dim ieDoc As MSHTML.HTMLDocument
Dim UserID As MSHTML.HTMLInputElement
Dim passwordID As MSHTML.HTMLInputElement
Dim loginb As MSHTML.HTMLInputElement
Dim AllHyperlinks As MSHTML.HTMLElementCollection
Dim hyper_link As MSHTML.HTMLInputElement
Dim link As Object
Set objIE = New SHDocVw.InternetExplorer
objIE.navigate URLstr
Do Until objIE.readyState = READYSTATE_COMPLETE
Loop
Set ieDoc = objIE.document
objIE.Visible = True
Application.Wait Now() + #12:00:02 AM#
Set UserID = ieDoc.all.Item("login/")
UserID.Value = ID
Application.Wait Now() + #12:00:02 AM#
Set passwordID = ieDoc.all.Item("password")
passwordID.Value = Pass
Application.Wait Now() + #12:00:01 AM#
Set loginb = ieDoc.getElementsByClassName("button")(0)
loginb.Click
Do Until objIE.readyState = READYSTATE_COMPLETE
Loop
Application.Wait Now() + #12:00:02 AM#
Set AllHyperlinks = ieDoc.getElementsByTagName("A") 'here i Got Error
For Each hyper_link In AllHyperlinks
If hyper_link.innerText = "search" Then
hyper_link.Click
Exit For
End If
Next
Set objIE = Nothing
End Function
HTML
搜寻
更换代码块:
Set AllHyperlinks = ieDoc.getElementsByTagName("A") 'here i Got Error
For Each hyper_link In AllHyperlinks
If hyper_link.innerText = "search" Then
hyper_link.Click
Exit For
End If
Next
反对:
ieDoc.getElementByID("button_search").Click
您可以为您的问题添加更多详细信息吗?登录后页面中按钮的标记HTML代码是您在父iframe/frame中的元素吗?现在我得到了错误对象变量或未设置块变量,但页面未完全加载或HTML来自另一个页面。登录后重新加载此页面可以将控制台发送到此页面吗??
objIE.readyState=readyState\u COMPLETE
不要工作两次。您必须以另一种方式等待第二次完全加载页面。通过手动中断应用程序。Wait…
或循环等待加载页面上的特定html元素。代码中的大部分Application.Wait…
可能不需要。
ieDoc.getElementByID("button_search").Click