HTML in VBA in Variable speichern
Schritt-für-Schritt-Anleitung
Um eine HTML-Variable in VBA zu definieren und auszugeben, kannst du die folgenden Schritte befolgen:
-
Öffne dein Excel-Dokument und gehe zu den Entwicklertools.
-
Erstelle ein neues Modul:
- Drücke
ALT + F11
, um den VBA-Editor zu öffnen.
- Rechtsklicke im Projektfenster und wähle „Einfügen“ > „Modul“.
-
Füge den folgenden Code ein:
Sub hallo()
Dim WebBrowser1 As Object
Dim strVersuch As String
Set WebBrowser1 = CreateObject("InternetExplorer.Application")
WebBrowser1.Visible = True ' Zum Testen anzeigen
WebBrowser1.Navigate Worksheets("Tabelle1").Cells(1, 2)
While WebBrowser1.ReadyState <> 4
DoEvents
Wend
strVersuch = WebBrowser1.Document.body.innerHTML ' HTML-Variable definieren
Worksheets("Tabelle1").Cells(1, 1) = strVersuch ' HTML-Variable ausgeben
End Sub
-
Ersetze den Link in Zelle 1,2 durch die gewünschte URL.
-
Starte das Makro, um die HTML-Daten in der definierten Variable zu speichern und auszugeben.
Häufige Fehler und Lösungen
-
Fehler: Quelltext erscheint nicht in der Tabelle
- Lösung: Stelle sicher, dass du die richtige URL verwendest und dass die Seite vollständig geladen ist, bevor du versuchst, den HTML-Code abzurufen.
-
Verwendung von All(0)
- Lösung: Anstelle von
WebBrowser1.Document.All(0).outerHTML
, nutze WebBrowser1.Document.body.innerHTML
, um die HTML-Variable korrekt zu definieren.
-
Datenschutzprobleme
- Lösung: Sei dir bewusst, dass das automatisierte Abrufen von personenbezogenen Daten ohne Zustimmung problematisch sein kann.
Alternative Methoden
Wenn du keine Internet Explorer-Objekte verwenden möchtest, könntest du auch die XMLHTTP-Methode nutzen, um HTML-Daten abzurufen. Hier ist ein Beispiel:
Sub GetHTML()
Dim http As Object
Set http = CreateObject("MSXML2.XMLHTTP")
http.Open "GET", Worksheets("Tabelle1").Cells(1, 2), False
http.send
Dim strHTML As String
strHTML = http.responseText ' HTML-Variable definieren
Worksheets("Tabelle1").Cells(1, 1) = strHTML ' HTML-Variable ausgeben
End Sub
Praktische Beispiele
Angenommen, du möchtest die HTML-Daten von einer Profilseite abrufen. Du könntest die URL wie folgt in Zelle A2
eingeben:
https://www.boardex.com/director/profile/default.aspx?menuCat=2&pCategory=1&dir_id=485658
Führe dann das Makro hallo
aus, um den HTML-Inhalt in Zelle A1
zu speichern.
Tipps für Profis
- Fehlerbehandlung einbauen: Verwende
On Error Resume Next
, um Fehler beim Abrufen der HTML-Daten zu behandeln.
- Reguläre Ausdrücke: Nutze reguläre Ausdrücke, um spezifische Daten aus dem HTML-Code herauszufiltern.
- Automatisierung: Kombiniere mehrere Makros, um wiederkehrende Aufgaben zu automatisieren.
FAQ: Häufige Fragen
1. Kann ich die HTML-Variable in eine andere Excel-Datei exportieren?
Ja, du kannst die HTML-Variable in eine andere Excel-Datei exportieren, indem du die entsprechende Workbook- und Worksheet-Referenz angibst.
2. Welche Excel-Version benötige ich für VBA?
VBA ist in den meisten Versionen von Microsoft Excel verfügbar. Stelle sicher, dass du eine Version verwendest, die VBA unterstützt, wie Excel 2010 oder höher.
3. Wie kann ich sicherstellen, dass die Webseite vollständig geladen ist?
Der Code verwendet eine Schleife (While WebBrowser1.ReadyState <> 4
), um sicherzustellen, dass die Seite vollständig geladen ist, bevor die HTML-Daten abgerufen werden.