Ich habe mehrere Prozeduren, die auf den Internet Explorer(IE) zugreifen und dort auf verschiedenen Seiten Informationen holen.
Ich habe jetzt schon eine Routine gefunden, die dafür sorgt, dass eine bereits bestehende IE-Instanz genutzt werden soll.
Folgenden Code nutze ich dafür:
Public Function Explorer(url As String) As Object~
Dim objShell As Object
Dim vorhanden As Boolean
Set objShell = CreateObject("Shell.Application")
For Each Explorer In objShell.Windows
If InStr(1, UCase(Explorer.FullName), "IEXPLORE") > 0 Then
Explorer.Visible = False
Explorer.navigate url
vorhanden = True
Do
Application.Wait Now + TimeSerial(0, 0, 1)
Loop Until Explorer.Busy = False
End If
Next
If vorhanden = False Then
Set Explorer = CreateObject("InternetExplorer.Application")
Explorer.Visible = False
Explorer.navigate url
Do
Application.Wait Now + TimeSerial(0, 0, 1)
Loop Until Explorer.Busy = False
End If
Problem:
Wenn die Prozedur verlassen wird, kommt folgende Fehlermeldung:
"Objektvariable oder With-Blockvariable nicht festgelegt"
Die Fehlermeldung kommt nur, wenn beim ersten Aufruf eine IE-Instanz existiert. Sie kommt nicht, wenn Sie neu aufgebaut wird und beim nächsten Durchlauf besteht.
Viele Grüße
moexx