Hallo,
ich lese mit einem Programm mehrere Webseiten aus. Dafür hole ich mir mit einer Funktion den html-Code der Seiten. Es funktioniert auch wunderbar, allerdings bringt er nach einiger Zeit einen merkwürdigen Fehler - statt wie zuvor den IE zu schließen bricht der VBA-Code ab und im IE werden hunderte von TAB-Reitern geöffnet. Der IE bläht sich in der Folge auf über 300 MB auf, blockiert das System und kann nur noch mit dem Taksmanager abgeschossen werden.
Komisch wie gesagt, dass erst alles super klappt und der IE auch immer wieder geschlossen wird. Woran könnte das liegen?
Grüße
Stefan
'Hier der Code:
Public Function GetDataFromUrl(Url As String, Optional ShowExplorer As Boolean = False, Optional WaitTime As Long = 5, Optional ShowError As Boolean = True) As String
'Dimensionieren der Variablen
Dim IETest As SHDocVw.InternetExplorer
Dim objShellWindows As New SHDocVw.ShellWindows
Dim IE As InternetExplorer
Dim Tm As Double
Dim Wt As Single
'Internet Explorer holen, falls geöffnet
For Each IETest In objShellWindows
Set IE = IETest
GoTo sprBereitsgeöffnet
Next IETest
WaitTime = 30 'Wartezeit in Sekunden
Wt = WaitTime 'Wartezeit
Set IE = New InternetExplorer
IE.Width = 1280
IE.Height = 1024
IE.Left = 1
IE.Top = 1
sprBereitsgeöffnet:
IE.Visible = True 'Sichtbar oder nicht
IE.Navigate Url ' Url laden
Tm = Timer
Do
If Timer - Tm \> Wt Then
GetDataFromUrl = ""
If ShowError Then
'MsgBox "Website konnte nicht geladen werden", vbCritical, \_
'"Fehler beim Laden"
IE.Quit
Set IE = Nothing
Exit Function
End If
End If
DoEvents
Loop Until IE.ReadyState = 4 ' Seite fertig geladen
GetDataFromUrl = IE.Document.DocumentElement.outerhtml
'Internet Explorer schließen
IE.Quit
Set IE = Nothing
End Function
[MOD] Pre-Tags eingefügt