Получить данные из Google Maps API с помощью VBA - PullRequest
1 голос
/ 01 мая 2019

Я пытаюсь получить Excel, чтобы извлечь время в пути и расстояние с помощью API карт Google. Я не могу заставить его вытащить какие-либо данные.

Sub main()
    Dim a, b, i, Str As String
    Dim lineS As Variant
    On Error Resume Next
    'Application.ScreenUpdating = False
    With CreateObject("WinHttp.WinHttpRequest.5.1")
        a = CStr(ThisWorkbook.Worksheets(1).Range("B3"))
        Dim iRow As Long: iRow = ThisWorkbook.Worksheets(1).Range("G6500").End(xlUp).Row
        For j = 5 To iRow
            b = ThisWorkbook.Worksheets(1).Range("R" & j)
            .Open "GET", "https://maps.googleapis.com/maps/api/distancematrix/json?origins=" & a & "&destinations=" & b & "&mode=driving&key=[hidden from this post]", False
            .send
            lineS = Split(.responsetext, vbLf)
            linS = .response
                For k = 25 To UBound(lineS)
                    If Trim(lineS(k)) = """distance"" : {" Then
                        Exit For
                    End If
                Next k
            ThisWorkbook.Worksheets(1).Range("s" & j) = lineS(k + 1)
            ThisWorkbook.Worksheets(1).Range("t" & j) = lineS(k + 5)
            Application.Wait (Now + TimeValue("0:00:01"))
        Next j
    End With
    'Application.ScreenUpdating = True

End Sub

API работает и выглядит так в браузере:


{
   "destination_addresses" : [ "Aberdeen AB11, UK" ],
   "origin_addresses" : [ "Harwich CO12, UK" ],
   "rows" : [
      {
         "elements" : [
            {
               "distance" : {
                  "text" : "899 km",
                  "value" : 898569
               },
               "duration" : {
                  "text" : "9 hours 32 mins",
                  "value" : 34292
               },
               "status" : "OK"
            }
         ]
      }
   ],
   "status" : "OK"
}

Любая помощь очень ценится.

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