Ich habe VBA programmiert, um mit IE ziemlich umfassend zu interagieren und habe begonnen, dies wieder zu tun, aber bin auf ein seltsames Phänomen, das ich nicht scheinen kann, mit allen zu lösen die Forschung, die ich gemacht habe.IE Automatisierung - Excel VBA ... läuft in Fehler nach Laden der Website
Sobald ich die Website laden, verliere ich alle Bezug auf die InternetExplorer Application
und kann nicht mehr mit dem Objekt arbeiten.
Wenn ich überprüfen, für die Website vollständig geladen ist, habe ich eine Run-Time Error 424 Object Required
bekam, oder eine Run-time error '-2147023179 (...)': Automation Error The interface is Unknown
Wenn ich an dieser Linie bewegen (während die Seite vollständig geladen zu sehen) und führen Sie die Set doc ...
Linie, erhalte ich Run-Time Error 462: The remote server machine does not exist or is unavailable
.
Ich verwende IE 11 und Excel 2010. Ich habe VBAProject Verweise auf Microsoft Internet Controls und Microsoft HTML-Objektbibliothek, aber die Fehler treten auch bei der späten Bindung.
Sub LoginToFXAll()
Dim ieApp As InternetExplorer
Set ieApp = New InternetExplorer
With ieApp
.Visible = True
.Navigate "https://www.google.com/"
Do
DoEvents
Loop Until .ReadyState = READYSTATE_COMPLETE ''<- Run-Time Error 424 occurs here
Dim doc As HTMLDocument
Set doc = .Document '<- Run-Time Error 462 occurs here
doc.all("q").Value = "Scott"
End With
End Sub
Ich hatte ein Problem wie es, verwendet Ihr Netzwerk eine Art von Sicherheit? Wenn ja, das Problem ist, dass die IE-Instanz während der Validierung Ihrer "Zugriffsrechte" ist "zerstört" und "neu aufzubauen", daher ist das ursprüngliche Objekt verloren – Sgdva
Dank @Sgdva - Ich habe ein Gefühl seiner Sicherheit verwandt, aber kann ' t "beweise es" noch nicht. Finden Sie es trotzdem, um es zu umgehen oder das neue Objekt zuzuweisen? (Ich vermute nicht). –
Leider habe ich zu dem Zeitpunkt keine Lösung dafür gefunden, aber jetzt, da ich ein wenig mehr darüber weiß, könnte man wahrscheinlich den Speicherort des Internet Explorers anstelle des Elements selbst ermitteln und sich irgendwie darauf beziehen, Leider kann ich es im Moment nicht testen, ob es funktioniert, aber das könnte eine gute Problemumgehung sein, überprüfe meine Antwort auf Richtlinien, wie mit [ObjPtr] gearbeitet werden könnte (https://support.microsoft.com/ de-de/kb/199824) – Sgdva