I get two different errors on the same line. Sometimes this one:
Automation error: object invoked has disconnected from its clients
and sometimes:
the interface is unknown
Minimal code to reproduce error:
Sub mcve()
Dim ie As Object
Dim www As String
Set ie = New InternetExplorerMedium
www = "http://www.stackoverflow.com"
ie.navigate www
ie.Visible = False
While ie.ReadyState <> 4 ' <~~~~~~~~~~~~~~~~~~~~~~~~ Error occurs here
DoEvents
Wend
End Sub
This requires a reference: Tools > References... > Microsoft Internet Controls
The error occurs on While ie.ReadyState <> 4
the second time. How do I fix this?
This is a duplicate of a previously asked question. The problem seems to be caused by Internet Explorer security settings - when switching between security zones, the current instance of IE is killed and a new instance is created, so your reference to the old process is no longer valid.
Some of the suggested solutions were:
ie.navigate "64.233.177.106"
(Google's IP address)Set ie = New InternetExplorerMedium
instead of New InternetExplorer
. Or in your case, vice versa.Instead of
Set ie = New InternetExplorerMedium
just use
Set ie = New InternetExplorer
or, for late binding:
Set ie = CreateObject("InternetExplorer.Application")
This makes the error go away.
I'm not sure why you would use InternetExplorerMedium
in the first place. Quoting the small print in the documentation:
Remarks
Windows Internet Explorer 8. On Windows Vista, to create an instance of Internet Explorer running at a medium integrity level, pass
CLSID_InternetExplorerMedium
(defined in exdisp.idl) toCoCreateInstance
. The resultingInternetExplorerMedium
object supports the same events, methods, and properties as theInternetExplorer
object.
Are you really using IE8 on Windows Vista, and do you really want "medium integrity level", whatever that means? I didn't think so.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With