[英]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.