Разноска APO JSON запросов отдельно для каждой строки в XLS и результат синтаксического анализа - PullRequest
0 голосов
/ 29 мая 2020

Я хотел бы сделать json запросов к API для каждой строки как отдельную json и проанализировать ответ api json в каждой строке как новый столбец.

У меня есть следующее Код VBA на данный момент

Не могли бы вы мне помочь?

Теперь код экспортирует все строки в одну json ячейку. Мне нужен отдельный json для каждой строки.

Примеры данных ниже

Recipient_Name Recipient_Address Ответ API (№ ваучера) John John 112 Test Rd 700041414141

Public Sub exceltonestedjson()
Dim rng As Range, items As New Collection, myitem As New Dictionary, subitem As New Dictionary, i As Integer, cell As Variant
Set rng = Range("A2", Cells(Rows.Count, 1).End(xlUp))
i = 0
For Each cell In rng
Debug.Print (cell.Value)
subitem("User_ID") = "???"
subitem("User_Password") = "???"
subitem("Pickup_Date") = Now()
subitem("Recipient_Name") = cell.Value
subitem("Recipient_Address") = cell.Offset(0, 3).Value
items.Add myitem
Set subitem = Nothing
Set myitem = Nothing
i = i + 1
Next
Sheets(1).Range("A30").Value = ConvertToJson(items, Whitespace:=2)
  Columns("A:A").Select
    Selection.Replace What:="[", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
  Columns("A:A").Select
    Selection.Replace What:="]", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False


    Dim objHTTP As Object
    Dim Json As String
    Json = Range("A30") 

    Dim result As String

    Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
    Url = "https://webservices.net/example"
    objHTTP.Open "POST", Url, False

   objHTTP.setRequestHeader "Content-type", "application/json"
   objHTTP.setRequestHeader "apikey", ""
   objHTTP.send (Json)
   result = objHTTP.responseText

   'Some simple debugging
   Range("B30").Value = result

   Set objHTTP = Nothing




End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...