2017-02-05 20 views
0

私はVBAを使用してExcelからWebページにアクセスしようとしています。私はインターネットエクスプローラを起動することができますし、ウェブページが表示されるのを見ていますが、私はDo not Until internet.ReadyState> = 4行のコードを実行するとランタイムエラー462が発生します。何か案は?最終的には、サイトを解析し、そのサイトのリンクのリストを取得し、そのリンクを「クリック」することができるようにしたいと考えています。提案や助けは素晴らしいだろう。インターネットエクスプローラでランタイムエラー462

Public Sub clicklick() 

Dim internet As Object 
Dim internetdata As Object 
Dim div_result As Object 
Dim header_links As Object 
Dim link As Object 
Dim URL As String 

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

URL = "https://www.google.co.in/search?q=how+to+program+in+vba" 
internet.Navigate URL 


Do Until internet.ReadyState >= 4 
    DoEvents 
Loop 

Application.Wait Now + TimeSerial(0, 0, 5) 

Set internetdata = internet.Document 
Set div_result = internetdata.getelementbyid("res") 


Set header_links = div_result.getelementsbytagname("h3") 

For Each h In header_links 
    Set link = h.ChildNodes.Item(0) 
    Cells(Range("A" & Rows.count).End(xlUp).row + 1, 1) = link.href 
Next 

MsgBox "done" 

End Sub 

はあなたに感謝し、 アラン

+0

コードは大丈夫と思われ、リンクを取得しています。どのようなエラーがあなたのPCに来る。エラースクリーンショットも入れてください。 – harun24hr

答えて

0

があなたのラインをreplcaingしてみてください:ここで私が使用しています関数は、(私はウェブ上で見つけた)である

Do Until internet.ReadyState >= 4 
    DoEvents 
Loop 

Application.Wait Now + TimeSerial(0, 0, 5) 

で:

While internet.busy 
    DoEvents 
Wend 

フルコード(試験済み)

Option Explicit 

Public Sub clicklick() 

Dim internet As Object 
Dim internetdata As Object 
Dim div_result As Object 
Dim header_links As Object 
Dim link As Object 
Dim h As Object 
Dim URL As String 

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

URL = "https://www.google.co.in/search?q=how+to+program+in+vba" 
internet.Navigate URL 

internet.Visible = True 

While internet.busy 
    DoEvents 
Wend 

Set internetdata = internet.Document 
Set div_result = internetdata.getelementbyid("res") 

Set header_links = div_result.getelementsbytagname("h3") 

For Each h In header_links 
    Set link = h.ChildNodes.Item(0) 
    Cells(Range("A" & Rows.Count).End(xlUp).Row + 1, 1) = link.href 
Next 

MsgBox "done" 

End Sub 
+0

シャイ、助けてくれてありがとう。これはうまくいった。私の問題は、このサイト(https://biz.yahoo.com/p/s_conameu.html)を実際に使いたいということです。そのサイトに掲載されているさまざまなセクターのリンクを取得したいのです。私はコードを実行すると、私はすべての方法を得る:div_result = internetdata.getelementbyid( "res")を設定し、実行時エラー '424'オブジェクトが必要なメッセージが表示されます。このタイプのウェブサイトで同じことを試すことに問題はありますか? – user3610196

関連する問題