Reputation: 907
I am getting the an automation error while invoking the following object
Set IE = CreateObject("InternetExplorer.Application")
The error is showing
Run-time error '-2147467259 (80004005)' Automation error Unspecified error
Can anyone have any idea why this is occuring
'moved code from comments
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
Upvotes: 6
Views: 42195
Reputation: 269
I realize it's been a while, but here's what I did to fix this seemingly random error. I added a GoTo line after killing all IE processes, then checked for an error after setting the IE object. If there is an error, add a delay and try again. It takes a few times once the error crops up, but it eventually stops.
Dim IE As Object
IEErrorReset: Call Shell("cmd.exe taskkill /F /IM /c iexplore.exe")
On Error Resume Next
Set IE = CreateObject("internetexplorer.application")
If Err.Number <> 0 Then
Err.Clear
Application.Wait (Now + TimeValue("00:00:05"))
GoTo IEErrorReset
End If
Upvotes: 0
Reputation: 31
Add the code to make sure all IE browsers are fully closed right before the Set line.
`Set IE = CreateObject("InternetExplorer.Application")`
Change it to:
Call IE_Sledgehammer
Set IE = CreateObject("InternetExplorer.Application")
Add the Sledgehammer module as its own macro somewhere else in the workbook:
Sub IE_Sledgehammer()
Dim objWMI As Object, objProcess As Object, objProcesses As Object
Set objWMI = GetObject("winmgmts://.")
Set objProcesses = objWMI.ExecQuery( _
"SELECT * FROM Win32_Process WHERE Name = 'iexplore.exe'")
For Each objProcess In objProcesses
On Error Resume Next
Call objProcess.Terminate
Next
Set objProcesses = Nothing: Set objWMI = Nothing
End Sub
Upvotes: 1
Reputation: 19436
For others who end up here with the same error...
This can also be caused by referencing the Document
object property in an InternetExplorer
object that has been quit and set to nothing. That this is not what is happening in this question but the following code throws the same error.
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
Upvotes: 2
Reputation: 101
I just wasted 4 hours on this, and I'm facepalming at how easy the solution was. Excel creates a new activeX instance every time you run the line:
Set IE = CreateObject("InternetExplorer.Application")
How exactly that works is out of my league, but those references stick around even after you restart excel. After a couple dozen pile up, excel runs out of memory to make more
Restart your computer, (probably an easier way, but that worked for me) and then stick the line
IE.Quit
at the end of your code
Upvotes: 10