[英]Excel VBA Error 462 With Internet Explorer
我有这个 function:
Sub CreateDatabase()
Dim ieNewPage As InternetExplorer, TableRows As Object, TableRow As Object
Dim TableRowsSpecificOwner As Object, TableRowSpecificOwner As Object, TagNeeded As Object
Set TableRows = GetData()
Set ieNewPage = New InternetExplorer
For Each TableRow In TableRows
ieNewPage.navigate CStr(TableRow.href)
Do While ieNewPage.ReadyState <> 4
DoEvents
Loop
ieNewPage.Visible = True
Set TableRowsSpecificOwner = ieNewPage.document.querySelectorAll("tr[class='puce_texte']")
For Each TableRowSpecificOwner In TableRowsSpecificOwner
If Excel.Application.IfError(Excel.Application.Search("France", TableRowSpecificOwner.innerText), -1) > 0 Then
Debug.Print TableRow.innerText
Debug.Print TableRowSpecificOwner.getElementsByTagName("a")(1).innerText
End If
Next
Excel.Application.Wait (Now + TimeValue("0:00:02"))
Next
End Sub
它应该做的是遍历我使用 function GetData()
获得的 href,导航页面,获取一些数据并移至下一个。
这适用于第一个链接,但随后我收到错误 462:
远程服务器不存在或不可用。
错误在这一行:
ieNewPage.navigate CStr(TableRow.href)
我该怎么解决这个问题?
有一篇关于这个错误的文章: Excel 自动化第二次代码运行失败,你可以检查一下。 错误的原因是:
Visual Basic has established a reference to Excel because of a line of code that calls an Excel object, method, or property without qualifying the element with an Excel object variable. 在您结束程序之前,Visual Basic 不会释放此引用。 当代码运行不止一次时,此错误引用会干扰自动化代码。
我认为发生错误是因为您没有第二次调用Set
of ieNewPage
。 您可以尝试将Set ieNewPage = New InternetExplorer
放入循环中,如下所示:
...
Set TableRows = GetData()
For Each TableRow In TableRows
Set ieNewPage = New InternetExplorer
ieNewPage.navigate CStr(TableRow.href)
...
Next
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.