CreateObject中的VBA自动化错误(“InternetExplorer.Application”)

时间:2014-02-27 07:27:37

标签: vba excel-vba excel

我在调用以下对象时遇到自动化错误

Set IE = CreateObject("InternetExplorer.Application")

错误显示

运行时错误' -2147467259(80004005)' 自动化错误 未指定的错误

任何人都可以知道为什么会这样吗

'从评论中移动代码

Sub TableExample()

    Dim IE As Object
    Dim doc As Object
    Dim strURL As String
    strURL = Range("B2").Value

    Set IE = CreateObject("InternetExplorer.Application")
    With IE '
        .Visible = True
        .navigate Range("B2").Value
        Do Until .readyState = 4
            DoEvents
        Loop
        Do While .Busy
            DoEvents
        Loop
        Set doc = IE.document
        GetAllTables doc
        .Quit
    End With
End Sub

3 个答案:

答案 0 :(得分:4)

我只是浪费了4个小时,而且我正在面对解决方案有多容易。 每次运行该行时,Excel都会创建一个新的activeX实例:

Set IE = CreateObject("InternetExplorer.Application")

这究竟是如何运作的,不过我的联盟,但即使你重启excel后这些参考仍然存在。经过几十次堆积后,excel耗尽内存才能生成更多

重新启动计算机,(可能更简单,但对我有用) 然后坚持下线

IE.Quit 
代码末尾的

答案 1 :(得分:1)

对于那些以同样的错误来到这里的人......

这也可以通过引用已退出并设置为空的Document对象中的InternetExplorer对象属性引起。这不是这个问题中发生的事情,但是下面的代码会抛出相同的错误。

Dim ie As New InternetExplorer
ie.Visible = True
ie.Navigate "google.com"

ie.Quit
Set ie = Nothing

If ie.Document Is Nothing Then 'Error thrown here
    MsgBox "Can't get here"
End If

答案 2 :(得分:0)

添加代码,以确保所有IE浏览器在“设置”行之前完全关闭。
`Set IE = CreateObject(“ InternetExplorer.Application”)`

将其更改为:
致电IE_Sledgehammer
设置IE = CreateObject(“ InternetExplorer.Application”)

在工作簿中的其他位置添加Sledgehammer模块作为其自己的宏:

Sub IE_Sledgehammer()
昏暗的objWMI作为对象,objProcess作为对象,objProcesses作为对象
设置objWMI = GetObject(“ winmgmts://。”)
设置objProcesses = objWMI.ExecQuery(_
“ SELECT * FROM Win32_Process WHERE Name ='iexplore.exe'”)
对于objProcesses中的每个objProcess
关于错误继续下一个
调用objProcess.Terminate
下一个
设置objProcesses =否:设置objWMI =否
结束