2014-07-08 4 views
1

나는 사용자로부터 티커 심볼을 얻고, 웹 사이트를 탐색하고, 티커 심볼을 입력하고, 적절한 링크를 클릭하도록 설계된 vba 스크립트를 작성하고 있습니다. . 죄송하지만 링크를 클릭하는 데 문제가 있습니다. 나는 이미 StackOverflow question and response을 연구했지만, 활용할 innertext 값이 없습니다. 나는 또한 행운없이 온라인에서 잠재적 인 해결책을 연구하는 좋은 시간을 보냈습니다.웹 페이지의 링크를 Excel에서 어떻게 사용합니까?

내 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> 

사람이 내가 링크를 클릭하는 방법을 말해 줄 수. 요소에는 이름, innertext 또는 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") ', 다음 요소의이'및/또는 클래스가 "hqt_button는"일관 .href' 상태인지 확인하려면 해당 모음을 반복? –

+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 

또는

당신이 GetElementsByClassName 방법을 사용할 수 있습니다 + 당신은 IE9을 사용하는 경우.

GetElementsByClassName("hqt_button") 
관련 문제