Вот пример VBA, показывающий, как файлы могут быть созданы. Импорт JSON .bas модуля из VBA JSON синтаксический анализатор в проект VBA для обработки JSON и включение ссылки на «Microsoft Scripting Runtime» (посмотрите здесь как импортировать модуль и добавить ссылку).
Поместите приведенный ниже код в стандартный модуль:
Option Explicit
Sub test()
With ActiveSheet.Cells(1, 1).CurrentRegion
If .Cells.Count < 4 Then
MsgBox "No data"
Exit Sub
End If
Dim source
source = .Value
End With
Dim i
For i = 2 To UBound(source, 2)
Dim data
Set data = New Dictionary
Dim j
For j = 2 To UBound(source, 1)
data(source(j, 1)) = source(j, i)
Next
saveTextToFile _
JSON.Serialize(Array(data)), _
ThisWorkbook.path & "\" & source(1, i) & ".json", _
"UTF-8"
Next
MsgBox "Completed"
End Sub
Sub saveTextToFile(content, filePath, charset)
With CreateObject("ADODB.Stream")
.Type = 2 ' adTypeText
.Open
.charset = charset
.WriteText content
.Position = 0
.Type = 1 ' TypeBinary
.SaveToFile filePath, 2
.Close
End With
End Sub
Исходные данные, которые я тестировал код с:
Вывод выглядит следующим образом:
file1. json
[
{
"prop1": "Alice",
"prop2": "Bob",
"prop3": "Charlie",
"prop4": "Eve",
"prop5": "Dan"
}
]
file2. json
[
{
"prop1": "Tomatoes",
"prop2": "Bananas",
"prop3": "Watermelons",
"prop4": "Apples",
"prop5": "Grapefruit"
}
]
file3. json
[
{
"prop1": "Russia",
"prop2": "Canada",
"prop3": "USA",
"prop4": "China",
"prop5": "Brazil"
}
]
BTW , аналогичный подход применяется в других ответах .