2017-07-18 87 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也可以。 –