簡體   English   中英

Excel VBA Internet Explorer 出現錯誤 462

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM