Inhalte aus URL/Webseiten mit Excel VBA auslesen
Schritt-für-Schritt-Anleitung
Um Daten von einer Webseite in Excel zu importieren, kannst du VBA (Visual Basic for Applications) verwenden. Hier ist eine einfache Anleitung, um mit dem Auslesen von Webseiten zu beginnen:
-
Öffne Excel und aktiviere die Entwicklertools:
- Gehe zu
Datei > Optionen > Menüband anpassen und aktiviere das Kontrollkästchen für Entwicklertools.
-
Erstelle ein neues Modul:
- Klicke auf
Entwicklertools > Visual Basic, dann im VBA-Editor auf Einfügen > Modul.
-
Füge den folgenden VBA-Code ein:
Sub Aufruf()
Call URL_Load("http://www.ksm-soccer.eu/verein.php?id=2730")
End Sub
Private Sub URL_Load(ByVal sURL As String)
Dim appIE As Object
Dim sTxt As String
Set appIE = CreateObject("InternetExplorer.Application")
appIE.Visible = True
appIE.navigate sURL
Do While appIE.Busy Or appIE.readyState <> 4: DoEvents: Loop
sTxt = appIE.document.documentElement.outerHTML
appIE.Quit
' Hier kannst du sTxt weiterverarbeiten
End Sub
-
Führe das Makro aus:
- Klicke auf
Ausführen oder drücke F5, um die Daten von der angegebenen URL auszulesen.
Häufige Fehler und Lösungen
-
Fehler: "Das Makro 'Einfuegen' existiert nicht":
- Stelle sicher, dass das Sub
Einfuegen im gleichen Modul oder in einem global zugänglichen Modul definiert ist.
-
Seite lädt nicht oder bleibt hängen:
- Überprüfe die URL auf Tippfehler und stelle sicher, dass die Webseite erreichbar ist.
-
Daten sind nicht im Quelltext enthalten:
- Einige Webseiten verwenden JavaScript, um Inhalte dynamisch zu laden. In solchen Fällen könnte die Verwendung von
SendKeys notwendig sein, um die Daten manuell zu kopieren.
Alternative Methoden
1. Daten aus der Zwischenablage auslesen:
- Du kannst die Funktion
GetFromClipboard verwenden, um Daten, die du manuell kopiert hast, in Excel einzufügen.
2. Webabfragen in Excel:
- In Excel (ab Version 2016) kannst du auch die Funktion
Daten > Abrufen und Transformieren > Aus dem Web nutzen, um Daten zu importieren, ohne VBA zu verwenden.
Praktische Beispiele
Hier sind einige nützliche Codeschnipsel:
Beispiel zum Auslesen von Links einer Webseite:
Sub HyperlinkSuchen()
Dim A As Long
Dim sHyperl As String
For A = 1 To Cells.Hyperlinks.Count
sHyperl = Cells.Hyperlinks(A).Address
' Hier kannst du die Hyperlinks weiterverarbeiten
Next A
End Sub
Beispiel zum Auslesen von Spielerinformationen:
Sub SearchAndClickLink()
Dim appIE As Object
Set appIE = CreateObject("InternetExplorer.Application")
appIE.Navigate2 "http://www.ksm-soccer.eu/verein.php?id=2730"
appIE.Visible = True
' Hier kannst du die Logik zum Finden und Klicken von Links implementieren
End Sub
Tipps für Profis
FAQ: Häufige Fragen
1. Kann ich auch Daten von einer anderen Webseite auslesen?
Ja, du kannst jede Webseite auslesen, solange sie nicht durch JavaScript oder andere Technologien blockiert ist.
2. Funktioniert das auch in Excel Online?
Nein, VBA ist nur in der Desktop-Version von Excel verfügbar.
3. Wie kann ich spezifische Daten wie Spielerwerte auslesen?
Du musst den HTML-Code der Seite analysieren und die entsprechenden Elemente mit VBA ansprechen. Das erfordert möglicherweise etwas experimentieren mit den Methoden getElementById, getElementsByClassName usw.
4. Was, wenn die Webseite eine Login-Seite hat?
In diesem Fall müsstest du zuerst die Anmeldedaten in VBA eingeben, um auf die geschützten Inhalte zugreifen zu können.