Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: EXCEL VBA *JSON auslesen

EXCEL VBA *JSON auslesen
08.10.2020 14:03:46
ChristianS
Grüßt euch,
ich benötige Hilfe bei der Auslese einer *JSON Datei in VBA.
Den Code meines Excel Tools, mit dessen Hilfe ich die Entfernung und Fahrzeit zwischen zwei Orten über die Google Distance API auslese hatte ich im Juli noch regelmäßig benutzt. Damals ohne Probleme.
Nun wollte ich heute erneut das Tool verwenden und bekomme eine Fehlermeldung.
Meine API ist noch gültig.
Der Fehler tritt im folgenden Code Abschnitt auf:
bei For Each legs In parsed bekomme ich dann die Fehlermeldung: Laufzeitfehler 5: Ungültiger Prozeduraufruf oder ungültiges Argument.
Dim APIResponse As String
Dim parsed As Dictionary, legs As Dictionary
'Entschlüsselt die erhaltene .JSON Datei.
APIResponse = myRequest.responseText
Set parsed = JsonConverter.ParseJson(APIResponse)
'Ließt die Fahrzeit (Sekunden) und Fahrstrecke(Meter) aus der .JSON datei aus.
Sekunden = 0
Fahrstrecke = 0
For Each legs In parsed("routes")(1)("legs")
Sekunden = Sekunden + legs("duration")("value")
Fahrstrecke = Fahrstrecke + legs("distance")("value")
Next legs
Die JSON Datei entschlüssel ich mit Hilfe des auf GIT Hub frei verfügbaren JSONConverters von Tim Hall.
(https://github.com/VBA-tools/VBA-JSON).
Der gesamte Code ist noch länger, funktioniert jedoch bis zu diesem Abschnitt fehlerlos.
Über eure Hilfe wäre ich sehr danbkbar.
Viele Grüße,
Christian
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: EXCEL VBA *JSON auslesen
08.10.2020 15:15:39
ChristianS
Habe das Problem selber behoben.
Manchmal ist man blind vor lauter Code.
An alle die irgendwann ähnliche Probleme haben, der Fehler lag in der Ziel URL.
Dem obigen Code, war ein Code vorgestellt, der Deutsche Umlaute und bestimmte Buchstaben in UTF-9 umwandelt.
Dort hatte sich durch öffnen der Excel Datei mit meinem MAC Book anstatt Win Desktop PC, alle Zielbuchstaben in sinnlose Zeichen und Zahlen abgeändert. Dort nur wieder die richtigen Buchstaben und Umlaute, welche ausgetauscht werden sollen, einsetzen und alles wieder gut.
Viele Grüße
Chris
Anzeige
AW: EXCEL VBA *JSON auslesen
08.10.2020 16:18:20
Yal
Sieht gut aus.
Würdest Du auch die Abfrage samt URL publizieren?
(persönliche Teil natürlich ändern/umlenken)
Vielen Dank & Grüße
Yal
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

JSON-Datei mit Excel VBA auslesen


Schritt-für-Schritt-Anleitung

Um eine JSON-Datei mit Excel VBA auszulesen, benötigst Du den JSONConverter von Tim Hall. Hier sind die Schritte, um dies zu erreichen:

  1. JSONConverter herunterladen: Lade den JSONConverter von GitHub herunter und füge ihn in Dein VBA-Projekt ein.

  2. VBA-Referenzen setzen: Stelle sicher, dass Du die benötigten VBA-Referenzen in Deinem Projekt gesetzt hast. Gehe zu Extras -> Verweise und aktiviere die Microsoft Scripting Runtime.

  3. Code zum Auslesen der JSON-Daten:

    Dim APIResponse As String
    Dim parsed As Dictionary, legs As Dictionary
    ' API-Response abrufen
    APIResponse = myRequest.responseText
    ' JSON-Daten parsen
    Set parsed = JsonConverter.ParseJson(APIResponse)
    
    Dim Sekunden As Long
    Dim Fahrstrecke As Long
    Sekunden = 0
    Fahrstrecke = 0
    ' Daten aus der JSON-Datei auslesen
    For Each legs In parsed("routes")(1)("legs")
       Sekunden = Sekunden + legs("duration")("value")
       Fahrstrecke = Fahrstrecke + legs("distance")("value")
    Next legs
  4. API-Anfrage durchführen: Stelle sicher, dass Du eine gültige API-URL verwendest, um die JSON-Daten abzurufen.

  5. Ergebnisse anzeigen: Du kannst die ausgelesenen Daten in eine Excel-Tabelle schreiben, um sie besser zu visualisieren.


Häufige Fehler und Lösungen

Hier sind einige häufige Fehler, die beim Auslesen von JSON-Daten in VBA auftreten können, sowie deren Lösungen:

  • Laufzeitfehler 5: Dieser Fehler kann auftreten, wenn der Zugriff auf ein Element in der JSON-Struktur nicht möglich ist. Überprüfe die Struktur der JSON-Daten und stelle sicher, dass Du die richtigen Indizes verwendest.

  • Ungültige URL: Wenn Du eine ungültige URL verwendest, erhältst Du möglicherweise keine Daten. Überprüfe die API-URL und stelle sicher, dass sie korrekt ist.

  • Zeichencodierung: Bei der Übertragung von Daten zwischen verschiedenen Systemen kann es zu Problemen mit der Zeichencodierung kommen. Achte darauf, dass die Ziel-URL die richtigen Zeichencodierungen verwendet.


Alternative Methoden

Wenn Du nicht mit VBA arbeiten möchtest, gibt es auch andere Möglichkeiten, JSON-Daten in Excel zu importieren:

  • Power Query: Mit Power Query kannst Du JSON-Dateien direkt in Excel importieren und verarbeiten, ohne VBA verwenden zu müssen.

  • Online-Tools: Es gibt zahlreiche Online-Tools, mit denen Du JSON-Daten in Excel importieren kannst. Diese Tools sind oft benutzerfreundlich und erfordern keine Programmierkenntnisse.


Praktische Beispiele

Hier sind einige praktische Beispiele, die Dir helfen, JSON-Daten mit VBA auszulesen:

  • Beispiel 1 - Google Distance API: Verwende die Google Distance API, um Entfernungs- und Zeitdaten zwischen zwei Orten abzurufen. Stelle sicher, dass Du die API-URL korrekt konfiguriert hast.

  • Beispiel 2 - Wetterdaten: Du kannst auch Wetterdaten von einer API abrufen und in Excel einfügen. Hierbei ist es wichtig, die JSON-Struktur der API zu verstehen.


Tipps für Profis

  • Fehlerbehandlung: Implementiere eine robuste Fehlerbehandlung in Deinem Code, um Laufzeitfehler zu vermeiden und die Verarbeitung zu verbessern.

  • Datenvalidierung: Überprüfe die ausgelesenen Daten auf Richtigkeit, bevor Du sie weiterverarbeitest oder in eine Excel-Tabelle schreibst.

  • Verwendung von Dictionaries: Nutze die VBA Dictionary-Objekte, um die JSON-Daten effizient zu verarbeiten und abzuspeichern.


FAQ: Häufige Fragen

1. Wie kann ich eine .json-Datei direkt in Excel öffnen?
Um eine .json-Datei in Excel zu öffnen, kannst Du Power Query verwenden. Gehe zu Daten -> Daten abrufen -> Aus Datei -> Aus JSON.

2. Was ist die beste Methode, um Daten aus einer JSON-Datei auszulesen?
Die beste Methode hängt von Deinen Anforderungen ab. Für einfache Aufgaben kann Power Query ausreichend sein, während VBA mehr Flexibilität für komplexe Datenverarbeitungen bietet.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige