VBA - дождаться ответа на запрос / веб-API - PullRequest
0 голосов
/ 24 июня 2019

Я пытаюсь получить книгу заказов от bitmex, чтобы преуспеть. На основании примеров в интернете мне удалось написать только часть кода. Он работает только один раз, и мне все еще нужно сделать циклы, чтобы он работал автоматически. Так что следующий запрос будет сделан после загрузки данных.

Я использовал библиотеку json converter, скачанную с github и добавленную в ссылках:

  • Microsoft xml6.0 и Microsoft WinHTTP Verion 5.1

Public Sub bitmexAPI()
    Dim http As Object, JSON As Object, i As Integer
    Set http = CreateObject("MSXML2.XMLHTTP")

    http.Open "GET", "https://www.bitmex.com/api/v1/orderBook/L2?symbol=XBT&depth=5", False
    http.Send

    Set JSON = ParseJson(http.ResponseText)
    i = 2

    For Each Item In JSON
        Sheets(2).Cells(i, 1).Value = Item("symbol")
        Sheets(2).Cells(i, 2).Value = Item("id")        
        Sheets(2).Cells(i, 3).Value = Item("side")        
        Sheets(2).Cells(i, 4).Value = Item("size")        
        Sheets(2).Cells(i, 5).Value = Item("price")                
        i = i + 1        
    Next

    Application.OnTime Now + TimeValue("00:00:02"), "bitmexAPI"                   
End Sub

Я добавил задержку в 2 секунды, но только один раз обновил данные. Как сделать циклы, чтобы макрос ожидал ответа от предыдущего запроса?

1 Ответ

1 голос
/ 24 июня 2019

Попробуйте это:

While http.readyState <> 4
DoEvents
Wend
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...