如何使用Excel VBA单击网页上的链接?
我正在编写VBA代码,以便从用户处获取股票代码,导航到网站,输入股票代码并单击相应的链接 我对此进行了研究,但是,我没有可利用的innertext值 我的VBA代码:如何使用Excel VBA单击网页上的链接?,excel,vba,web-scraping,Excel,Vba,Web Scraping,我正在编写VBA代码,以便从用户处获取股票代码,导航到网站,输入股票代码并单击相应的链接 我对此进行了研究,但是,我没有可利用的innertext值 我的VBA代码: Sub clicklick() Dim ie As Object Dim form As Variant, button As Variant Set ie = CreateObject("InternetExplorer.Application") ticker = InputBox("Enter Ticker Symbol:
Sub clicklick()
Dim ie As Object
Dim form As Variant, button As Variant
Set ie = CreateObject("InternetExplorer.Application")
ticker = InputBox("Enter Ticker Symbol: ")
With ie
.Visible = True
.Navigate ("http://www.SITE_URL.com")
While ie.ReadyState <> 4
DoEvents
Wend
ie.document.getElementsbyName("sSrchTerm").Item.innertext = ticker
End With
End Sub
尝试获取锚定标记集合,包括:
GetElementsByTagName("a")
然后,使用尽可能多的逻辑迭代该集合,以确保单击的是右键
For each l in ie.document.getElementsByTagName("a")
If l.ClassName = "hqt_button" Then
l.Click
Exit For
Next
如果有多个锚具有相同的类名,则可以执行以下操作:
If l.ClassName = "hqt_button" AND l.Href = ""javascript:void(0): onclick=HeaderBox.trySubmit()" Then
l.Click
Exit For
Next
或者
如果您使用的是IE9+,则可以使用GetElementsByClassName
方法
GetElementsByClassName("hqt_button")
你也可以使用
“
表示类名<代码>[]包含一个属性。上面说classNamehqt_按钮
带有属性href
和值'javascript:void(0):onclick=HeaderBox.trySubmit()'
,位于标记内部
CSS查询:
VBA中的语法:
CSS选择器通过HTMLDocument的.querySelector
方法应用
ie.document.querySelector("a.hqt_button[href='javascript:void(0): onclick=HeaderBox.trySubmit()']").Click
GetElementsByTagTame(“a”)
,然后重复该集合检查,以确保元素的.href
是一致的和/或类是“hqt_按钮”?class=“hqt_按钮”,href=“javascript:void(0):…”类似于上面的编辑。我认为您的思路是正确的,但如果l.classname=“hqt_按钮”,请尝试然后…
然后您需要Next l
或简单地Next
——而不是Next link
。进行了这些更改,但得到了一个运行时438:对象不支持此属性或方法。似乎不喜欢这行代码:如果link.classname=“hqt\u button”那么
GetElementsByClassName("hqt_button")
a.hqt_button[href='javascript:void(0): onclick=HeaderBox.trySubmit()']
ie.document.querySelector("a.hqt_button[href='javascript:void(0): onclick=HeaderBox.trySubmit()']").Click