2017-08-28 9 views
-1

私は、クリックするとダウンロードを開始するウェブサイトからデータをダウンロードしようとしています。 しかし、このコードは動作していません、誰も助けることができます。VBAによるデータのスクラップ

Dim ie As InternetExplorer 
Dim htmldoc As MSHTML.IHTMLDocument 
Dim HTMLInput As MSHTML.IHTMLElementCollection 
Dim HTMLAs As MSHTML.IHTMLElementCollection 
Dim HTMLA As MSHTML.IHTMLElement 

Set ie = CreateObject("InternetExplorer.Application") 
ie.Visible = True  

'Navigate to webpage 
Dim ieURL As String: ieURL = "http://erldc.org/final-schedule.aspx" 
ie.navigate ieURL   
Do While ie.readyState <> READYSTATE_COMPLETE 

Loop 

Set htmldoc = ie.document 
Set HTMLInput = htmldoc.getElementsByTagName("a") 

For Each HTMLA In HTMLAs 

ます。Debug.Print HTMLA.getAttribute( "クラス名")、HTMLA.getAttribute( "HREF")、HTMLA.getAttribute( "相対")

If HTMLA.getAttribute("href") = "javascript:__doPostBack('ctl00$ContentPlaceHolder1$Calendar1','6420')" Then 

HTMLA.Click 

Exit For 
End If 

Next HTMLA 

End Subの

+0

フォーラムに知らせることに感謝します。 – cyboashu

+0

@cyboashu 1ヶ月のデータをダウンロードするのに手伝ってください。適切な結果が得られません。 –

答えて

0

てみてください... ReadyStateをチェックDo While/Loopした後、数秒、多分5秒間マクロを一時停止

Dim sngFinish As Single 
Dim intPauseTime As Integer 

intPauseTime = 5 'in seconds 
sngFinish = timer + intPauseTime 
Do While timer < sngFinish 
    DoEvents 
Loop 

また、私はあなたがReadyStateに加えて、インターネットエクスプローラのBusy状態を確認し、DoEventsを追加することを示唆している...

Do While ie.Busy Or ie.readyState <> READYSTATE_COMPLETE 
    DoEvents 
Loop 

・ホープ、このことができます!

+0

あなたの助けていただきありがとうございます。それぞれのHtmlA行がランタイムエラーを投げています。 –

+0

各HtmlA行がランタイムエラー '424'を投げています私のほとんどのプログラムはこのエラーを投げます。そして、必要に応じて日付をクリックしていないか、VBAでこの機能を実行できないため、別の言語を使用する必要があるため、リンクを訪問することはできますか? –

+0

HTMLInput - > 'Set HTMLAs = htmldoc.getElementsByTagName(" a ")ではなく、要素のコレクションをHTMLAsに割り当てる必要があるようです。 – Domenic

関連する問題