2017-07-18 121 views
0

我是非常新的HTML和VBA。在HTML頁面中,我可以選擇單擊「是」或「否」。注意這些不是按鈕,而是鏈接。在VBA excel代碼中點擊「是」或「否」需要幫助。對「是」更感興趣。 「NO」我可以用IE.QuitVBA是無鏈接點擊

HTML代碼是或否忽略

<HTML> 
<BODY> 
<Table> 
<TR> 
<TD> 
<A HREF="Abc.com"><FONT COLOR="#8000080">YES<Font></A> 
&nbsp; <HREF="javascript:window.close();"><FONT COLOR="#8000080">NO<Font></A> 
</TD> 
</TR> 
</TABLE> 
</BODY> 
</HTML> 
+0

嘗試這個'IE.document.getelementsbytagname( 「A」)(1).innertext.click'或者它可能是 「innerHTML的」 不 「的innerText」 – user1

+0

感謝。如果面臨問題,將明天嘗試並尋求進一步的幫助。 –

回答

0

這可能是你在找什麼。它會提示用戶一個問題,他們將能夠選擇「是」或「否」VBA

Sub question() 
    answer = MsgBox("your question", vbYesNo + vbQuestion, "subject") 
    If answer = vbYes Then 
     'Do This 
    End If 
End Sub 
+0

我正在尋找類似user1的迴應。我可以使用VBA激活HTML鏈接,但下一個屏幕在HTML中彈出「是」或「否」,並且需要VBA代碼才能自動單擊「是」。 –

0

這樣的事情應該工作。基本上你想遍歷所有A標籤,並找到innerText與yes匹配的位置。一旦完成,您可以單擊該元素。

Sub ClickYes() 
    Dim ie  As Object: Set ie = CreateObject("InternetExplorer.Application") 
    Dim elements As Object 
    Dim element As Object 

    ie.navigate "mysite.com" 

    'Wait until the page loads 
    Do Until ie.readystate <> 4 
     Application.Wait (Now() + TimeValue("00:00:02")) 
     DoEvents 
    Loop 

    ie.Visible = True 

    Set elements = ie.document.getElementsByTagName("a") 

    'Make sure we got an object back, otherwise exit 
    If elements Is Nothing Then Exit Sub 

    'Iterate through the a elements and click where the innertext is yes 
    For Each element In elements 
     'turn error handling off 
     On Error Resume Next 

     'Click the link where the text is Yes 
     If element.innerText = "Yes" Then 
      element.Click 
      Exit For ' stop searching after the first match 
     End If 
    Next 

    'turn error handling back on 
    On Error GoTo 0 
End Sub 
+0

謝謝瑞恩。它在一定程度上工作,但點擊不起作用。而不是點擊我使用is.navigate元素,它的工作。在另一個彈出式窗口中,當VBA中沒有A標籤時,如果元素是Nothing,那麼必須在行上有exit。然後Exit Sub,但它存在於元素中每個元素的下一行中。 隨着我使用ie.navigate元素,它會瀏覽第一個可用的url,這可能是有風險的,因爲不同的彈出可能有不同的h參考。如果超鏈接中的url包含特定的文本,我想使用ie.navigate。內部文本=「是」沒有工作。是否有任何代碼類似或包含 –

+0

對不起。使用手機 –

+0

我用innterHTML像「* close *」那麼element.click也可以。 –