URLs in Excel prüfen und testen
Schritt-für-Schritt-Anleitung
Um zu prüfen, ob eine URL erreichbar ist und ob eine Datei im Internet existiert, kannst du folgenden VBA-Code verwenden:
- Öffne Excel und drücke
ALT + F11, um den VBA-Editor zu öffnen.
- Klicke im Menü auf
Einfügen und dann auf Modul, um ein neues Modul zu erstellen.
- Füge den folgenden Code in das Modul ein:
Option Explicit
Public Function GetLinkStatus(ByVal strUrl As String) As Boolean
Dim objXMLHTTP As Object
If Not Left$(strUrl, 7) = "http://" Then strUrl = "http://" & strUrl
Set objXMLHTTP = CreateObject("Msxml2.XMLHTTP")
On Error Resume Next
objXMLHTTP.Open "GET", strUrl, False
objXMLHTTP.Send
GetLinkStatus = objXMLHTTP.Status = 200
Set objXMLHTTP = Nothing
On Error GoTo 0
End Function
Public Sub test()
If GetLinkStatus("http://www.testseite.com/test.txt") Then
Call Makro_A
Else
Call Makro_B
End If
End Sub
Public Sub Makro_A()
MsgBox "A"
End Sub
Public Sub Makro_B()
MsgBox "B"
End Sub
- Ändere die URL in der
test-Subroutine nach Bedarf.
- Führe das Makro
test aus, um zu überprüfen, ob die URL erreichbar ist.
Häufige Fehler und Lösungen
- Fehler 404: Dieser Fehler tritt auf, wenn die URL nicht gefunden wird. Stelle sicher, dass die URL korrekt eingegeben ist.
- Kein Internetzugang: Überprüfe deine Internetverbindung, da der Code eine aktive Verbindung benötigt, um die URL zu prüfen.
- Sicherheitseinstellungen: Möglicherweise blockiert deine Excel-Installation den Zugriff auf externe URLs. Überprüfe die Sicherheitseinstellungen in Excel.
Alternative Methoden
Eine einfache Methode, um Links zu prüfen, ist die Verwendung von Excel-Formeln. Mit der WEBSERVICE-Funktion in Excel 2013 und höher kannst du die Verfügbarkeit einer URL testen. Beispiel:
=WEBSERVICE("http://www.testseite.com/test.txt")
Diese Formel gibt den Inhalt der URL zurück, wenn sie erreichbar ist, oder einen Fehler, wenn sie nicht erreichbar ist.
Praktische Beispiele
-
URL prüfen und Makro ausführen:
Du kannst das oben genannte Makro verwenden, um verschiedene Aktionen abhängig vom Status einer URL auszuführen.
-
Mehrere URLs prüfen:
Erweitere die test-Subroutine, um eine Liste von URLs zu durchlaufen und deren Verfügbarkeit zu prüfen.
Public Sub testMultipleUrls()
Dim urls As Variant
Dim url As Variant
urls = Array("http://www.testseite.com/test.txt", "http://www.beispiel.com/test.txt")
For Each url In urls
If GetLinkStatus(url) Then
MsgBox url & " ist erreichbar."
Else
MsgBox url & " ist nicht erreichbar."
End If
Next url
End Sub
Tipps für Profis
- Verwende
On Error Resume Next vorsichtig, um zu vermeiden, dass andere Fehler ignoriert werden.
- Optimiere deinen Code, indem du die HTTP-Anfragen asynchron verarbeiten lässt, um die Performance bei vielen URLs zu verbessern.
- Dokumentiere deine Makros gut, damit andere (oder du selbst später) den Code leicht nachvollziehen können.
FAQ: Häufige Fragen
1. Wie kann ich mehrere URLs gleichzeitig prüfen?
Du kannst eine Schleife in VBA verwenden, um durch ein Array von URLs zu iterieren und die Verfügbarkeit jeder URL zu überprüfen.
2. Was mache ich, wenn ich einen Fehler beim Ausführen des Makros bekomme?
Überprüfe deine Internetverbindung und die Sicherheitseinstellungen in Excel. Achte auch darauf, dass die URL korrekt formatiert ist.