VBAの新機能で、Internet Explorerでhrefリンクをクリックする方法に関する質問がありました。ソースページには複数のhrefがあります。私はこれに遭遇したことはないし、それは私に苦労している!私はこのウェブサイトを見て答えを探していましたが、ここで質問することにしました。Excel VBAを使用して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の私のレベルのために謝罪しますが、私はもっと学ぶことに興奮しています!
ありがとうございました!
いくつかのガイダンスのために[この回答](https://stackoverflow.com/a/47333783/7690982)を参照してください。 – danieltakeshi
は、私はそれを感謝し、非常に非公式た指導ダニエル!をありがとうございました。 しかし、 'href url 1'と 'href url 2'は静的ではなく、ログインするたびに変更されることを忘れていました。別の方法がありますか別の方法を使って/ href url 1 'をクリックするには? –
ウェブサイトを開くたびに1回目と2回目のhrefが必要な場合は、ループ「i = i + 1」内にカウンタを置いて、If i = 1のときにi = 1のときループを終了できます次にExit For ' – danieltakeshi