Pytam o to po kilku badaniach w Internecie. Istnieje sposób na zaimportowanie arkusza Excela na pliki typu JSON lub XML, ale nie ma jasnych opisów dla mojej sprawy. Chciałbym, jaki jest mój cel;
Mam pewnego rodzaju ciąg danych, taki jak plik .txt, taki jak ten;
Przykładowe dane:
{"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",
]
}
}}
Chciałbym wybrać ten plik w oknie dialogowym pliku, a następnie kliknij przycisk Czytaj, teraz moje pytanie pojawia się tutaj. Czy można połączyć / zmapować je z komórkami, na przykład mam komórkę o nazwie vehicle_title
i chcę zmapować tę komórkę za pomocą plików .txt "title": "A super red vehicle"
.
Czy masz jakieś doświadczenie lub pomysł, jak mogę to zaimplementować do mojego makra?
Pozdrowienia.
Odpowiedzi:
2 dla odpowiedzi № 1Możesz użyć tej biblioteki
https://github.com/VBA-tools/VBA-JSON
aby przeanalizować JSON w VBA, ale musisz wykonać mapowanie w kodzie: nie ma do tego wbudowanej konfiguracji / kreatora.
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 W Twojej próbce JSON występuje kilka błędów składniowych.