如何使用Excel 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:

我正在编写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: ")

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")   
你也可以使用

表示类名<代码>[]包含一个属性。上面说className
hqt_按钮
带有属性
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