【发布时间】:2017-12-19 07:47:44
【问题描述】:
我对 VBA 非常陌生,并且有一个关于如何在 Internet Explorer 中单击 href 链接的问题。源页面上有多个href。我从来没有遇到过这种情况,这让我很难过!我在这个网站上寻找答案,但决定在这里问。
下面我列出了我所拥有的代码,直到我遇到问题,以及 Internet Explorer 上的源代码。
我注释掉了我尝试过的内容并列出了我收到的错误。
代码如下:
Sub ()
Dim i As Long
Dim URL As String
Dim IE As Object
Dim objElement As Object
Dim objCollection As Object
User = "User"
Pwd = "Pwd"
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
URL = "URL.com"
IE.Navigate URL
Do While IE.ReadyState <> 4
DoEvents
Loop
IE.Document.getElementById("txtUsername").Value = User
IE.Document.getElementById("txtPassword").Value = Pwd
IE.Document.getElementById("btnSubmit").Click
'IE.getElementByClassName("txtTerms").Click - Runtime Error 438
'IE.getElementByTagName("Claims Management").Click - Runtime Error 438
'Set HREF = IE.Document.getElementsByClassName("txtTerms")
'For Each HREF In IE.Document.getElementsByTagName("Claims").Click - No error occurs, nothing happens.
End Sub
Internet Explorer 源代码:
<table id="tblContent">
<tr>
<td class="txtTerms"><a href='href url 1'>Claims</a>
<br>Download<br>Create<br><a class='terms' href='href url 2'
target='terms'>Terms</a><br><br></td>
</tr>
我的问题是,如何让 VBA 只点击“href url 1”?
如果需要任何其他信息,请告诉我。对于我的 VBA 水平,我深表歉意,但我很高兴能了解更多信息!
感谢您的帮助!
【问题讨论】:
-
请参阅this answer 以获得一些指导。
-
感谢大牛的指导!那是非常非正式的,我很感激。但是,我忘了提到“href url 1”和“href url 2”不是静态的,每次登录时都会发生变化。有没有使用/尝试不同方法单击“href url 1”的不同方法?
-
如果你想要的是每次打开网站时的第一个和第二个href,你可以在循环中放置一个计数器
i=i+1,然后在i=1和If i = 1 Then Exit For退出循环时
标签: vba excel internet-explorer href excel-2013