簡體   English   中英

VBA宏,類型不匹配錯誤

[英]VBA Macro, type mismatch error

我正在嘗試在excel中獲取JSON數據並進行解析。 但是,我收到一個錯誤:鍵入不匹配。

有誰知道我該如何解決? 我不知道我在做什么錯。

這是我正在使用的API的鏈接: https : //min-api.cryptocompare.com/data/price?fsym=ETH&tsyms=USD

這是代碼:

Public Sub exceljson()

    Dim https As Object, JSON As Object, i As Integer

    Set https = CreateObject("MSXML2.XMLHTTP")

    https.Open "GET", "https://min-api.cryptocompare.com/data/price?fsym=ETH&tsyms=USD", False
    https.Send

    Set JSON = ParseJson(https.responseText)
    i = 2

    For Each Item In JSON
        Sheets(1).Cells(i, 1).Value = Item("USD")
        i = i + 1
    Next

    MsgBox ("complete")

End Sub

如果確認已正確導入了JsonConverter模塊和Dictionary類並參考Microsoft Scripting Runtime ,則以下代碼將起作用:

    Public Sub exceljson()
    Dim https As Object, Json As Object, i As Integer

    Dim Item As Variant

    Set https = CreateObject("MSXML2.XMLHTTP")
    https.Open "GET", "https://min-api.cryptocompare.com/data/price?fsym=ETH&tsyms=USD", False
    https.Send

    Set Json = JsonConverter.ParseJson(https.responseText)

    i = 2
    For Each Item In Json.Items
        Sheets(1).Cells(i, 1).Value = Item
        i = i + 1
    Next
    MsgBox ("complete")
End Sub

希望能幫助到你!


更新

您應該分析服務器響應的Json數據,“ Data”的值是一個Dictionary。 因此,您應該在For Each Loop使用字典。

以下代碼將獲取所有數據,我僅以“ high”鍵為例。 您可以輕松地將其他鍵輸出到excel。

Public Sub exceljson()
    Dim https As Object, Json As Object, DataItem As Dictionary, i As Integer


    Set https = CreateObject("MSXML2.XMLHTTP")
    https.Open "GET", "https://min-api.cryptocompare.com/data/histominute?fsym=BTC&tsym=USD&limit=60&aggregate=3&e=CCCAGG", False
    https.Send

    'Use this debug command to see the whole response text
    'Debug.Print https.responseText
    Set Json = JsonConverter.ParseJson(https.responseText)


    i = 2
    For Each DataItem In Json("Data")
        'Use "high" as example, you can output other key/values
        Sheets(1).Cells(i, 1).Value = DataItem("high")

        i = i + 1
    Next
    MsgBox ("complete")
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM