Ich frage dies nach einigen Recherchen im Internet. Es gibt eine Möglichkeit, Dateien vom Typ JSON oder XML zum Importieren von Excel-Tabellen zu verwenden, es wurden jedoch keine eindeutigen Beschreibungen für meinen Fall gefunden. Ich würde gerne wissen, was mein Ziel ist.
Ich habe eine Art von String-Daten wie .txt-Datei wie folgt;
Beispieldaten:
{"vehicle1": {
"title": "A super red vehicle",
"weight": "1500 kg",
"height": "2 m",
"vehicle1-center_of_gravity": [
{"x": "2 m"},
{"y": "-0.5 m"},
{"z": "1.5 m"}
"vehicle1-passenger_weights": [
{"p1": "2 m"},
{"p2": "-0.5 m"},
{"p3": "1.5 m"}
"color": "red",
]
}
}}
Ich möchte diese Datei mit dem Dateidialog auswählen und dann auf die Schaltfläche zum Lesen klicken, jetzt kommt meine Frage hier rein. Ist es möglich, sie mit Zellen zu verknüpfen / abzubilden, zum Beispiel habe ich eine benannte Zelle vehicle_title
und ich möchte diese Zelle mit TXT-Datei "s zuordnen "title": "A super red vehicle"
.
Haben Sie Erfahrung oder eine Idee, wie ich das auf meinem Makro implementieren kann.
Grüße.
Antworten:
2 für die Antwort № 1Sie können diese Bibliothek verwenden
https://github.com/VBA-tools/VBA-JSON
um JSON in VBA zu analysieren, müssen Sie jedoch die Zuordnung im Code vornehmen: Es gibt keinen eingebauten Konfigurations- / Assistenten für diesen Vorgang.
Sub Tester()
Dim j As Object, json As String, v
"read from file
json = CreateObject("scripting.filesystemobject").OpenTextFile( _
ThisWorkbook.Path & "example.txt").ReadAll()
"import module from: https://github.com/VBA-tools/VBA-JSON
Set j = JsonConverter.ParseJson(json)
Set v = j("vehicle1")
"some attributes...
Debug.Print v("title")
Debug.Print v("weight")
Debug.Print v("vehicle1-center_of_gravity")(1)("x")
End Sub
PS: In Ihrem JSON-Beispiel sind einige Syntaxfehler enthalten.