2017-08-16 315 views
0

获取类型不匹配(错误13),而在Excel宏使用JSON解析器类型不匹配(错误13)在Excel

下面是代码:

Sub getJsonValue() 
    Dim FSO As New FileSystemObject 
    Dim JsonTS As TextStream 
    Set JsonTS = FSO.OpenTextFile("C:\Users\Card_Link.json", ForReading) 
    JsonText = JsonTS.ReadAll 
    JsonTS.Close 
    Set Json = ParseJson(JsonText) 
    Set JsonRows = Json("rows") 
    i = 2 
    For Each Item In Json 
     Sheet5.Cells(i, 1).Value = Item("name") 
     'Sheet5.Cells(i, 2).Value = Item("results")("name") 
     'Sheet5.Cells(i, 3).Value = Item("results")("responsecode") 
     i = i + 1 
    Next 
    MsgBox ("complete") 
End Sub 

获取有关该错误声明 Sheet5.Cells(i, 1).Value = Item("name")

有人可以帮我解决这个问题。

感谢 RJ

回答

1

,而不必与ParseJson任何经验,尝试其中之一:

Sheet5.Cells(i, 1).value = item

Sheet5.Cells(i, 1).value = item(0)

Sheet5.Cells(i, 1).value = item.Name

如果仍没有这些作品,尝试像这样:

For Each item In Json 
    Stop 
    Sheet5.Cells(i, 1).value = item("name") 
    'Sheet5.Cells(i, 2).Value = Item("results")("name") 
    'Sheet5.Cells(i, 3).Value = Item("results")("responsecode") 
    i = i + 1 
Next 

在停止,选择item,按 + F9 看看你有什么在item

+0

感谢您的回复。 Sheet5.Cells(i,1).value = item - 此语句正在工作,但我想获取子项值。我尝试项目(0),item.Name和项目(名称),但没有任何工作。你能帮我吗 – user8472243

+0

@ user8472243 - 你试过Shift + F9吗?发生了什么? – Vityata

+0

对不起,延迟回复。在“Item”中,我现在得到了正确的值,但是当我要获得像item.name或item(name)这样的下一级值时。它的显示错误 - 424(运行时错误)在此语句上显示“Object Required” - Sheet5.Cells(i,2).Value = Item.Name – user8472243