我在调用以下对象时遇到自动化错误
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
答案 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 =否
结束