2017-02-05 221 views
0

我想使用VBA从excel访问网页。我可以启动Internet Explorer,并且看到网页出现,但是当我点击“直到internet.ReadyState> = 4行代码”时,出现运行时错误462。有任何想法吗?最终我希望能够解析网站并获取该网站上的链接列表并选择一个,然后在该链接上单击“单击”。建议和帮助会很好。这里是函数(即我在网上找到),我现在用:与Internet Explorer的运行时错误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

该代码似乎没关系,并获得链接。什么错误来到你的电脑。把错误截图也是如此。 – 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

Shai,谢谢你的帮助。这工作。我现在的问题是,我想真正使用这个网站(https://biz.yahoo.com/p/s_conameu.html),我想获得该网站上列出的各个部门的链接。当我运行代码时,我得到了一切:设置div_result = internetdata.getelementbyid(“res”),我得到一个运行时错误'424'对象所需的消息。使用这种类型的网站尝试相同的事情是否存在问题? – user3610196