2014-07-08 79 views
1

我正在编写一个vba脚本,用于从用户获取股票代码,导航到网站,输入股票代码并单击相应的链接。不幸的是,我无法点击链接。我已经研究了这个StackOverflow question and response,但是,我没有一个无用的值来利用。我也花了一个小时在线研究一个潜在的解决方案,没有任何运气。如何使用excel vba单击网页上的链接

我的VB脚本如下:

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 

我试图点击链接出现在页面的源代码如下:

<a class="hqt_button" href="javascript:void(0): onclick=HeaderBox.trySubmit()"></a> 

谁能告诉我怎么可以点击链接。该元素似乎没有名称,内联网或ID,所以我不知道如何去实现它。

编辑:

Set Link = ie.document.getElementsByTagName("a") 
    For Each l In Link 
     If Link.classname = "hqt_button" Then 
      Link.Click 
      Exit For 
     End If 
    Next l 
+0

'GetElementsByTagTame(“A”)',然后遍历该集合检查,以确保该元素的'.href'是一致的和/或类是“hqt_button”? –

+0

所以像这样: – Mutuelinvestor

+0

class =“hqt_button”,href =“javascript:void(0):...” –

回答

6

尝试获得锚标记的集合,具有:

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") 
相关问题