【问题标题】:Excel VBA Error 462 With Internet Explorer使用 Internet Explorer 的 Excel VBA 错误 462
【发布时间】:2020-03-18 14:34:35
【问题描述】:

我有这个功能:

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

它应该做的是遍历我使用函数GetData() 获得的href,导航页面,获取一些数据并移至下一个。

这适用于第一个链接,但随后我收到错误 462:

远程服务器不存在或不可用。

错误在这一行:

ieNewPage.navigate CStr(TableRow.href)

我该如何解决这个问题?

【问题讨论】:

  • 了解运行“GetData()”函数或函数代码本身后收到的对象类型可能很有用。
  • @ZygD TableRows 中的一个对象示例如下:&lt;a class="classname" href="link I need"&gt;Text info I also need &lt;/a&gt;
  • 运行 typename(TableRows) 并告诉我们你得到什么类型名称。
  • @ZygD 我得到:DispHTMLElementCollection

标签: html excel vba internet-explorer navigation


【解决方案1】:

有一篇关于这个错误的文章:Excel automation fails second time code runs,你可以查一下。错误原因是:

Visual Basic 已建立对 Excel 的引用,因为有一行代码调用 Excel 对象、方法或属性,而没有使用 Excel 对象变量限定元素。在您结束程序之前,Visual Basic 不会释放此引用。当代码运行多次时,这种错误引用会干扰自动化代码。

我认为发生错误是因为您没有第二次调用ieNewPageSet。您可以尝试像这样将Set ieNewPage = New InternetExplorer 放入循环中:

...    
Set TableRows = GetData()    
For Each TableRow In TableRows
    Set ieNewPage = New InternetExplorer
    ieNewPage.navigate CStr(TableRow.href)
    ...
Next
...

【讨论】:

    猜你喜欢
    • 2015-06-23
    • 2019-03-29
    • 1970-01-01
    • 1970-01-01
    • 2018-12-18
    • 2021-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多