Vba 设置对象时类型不匹配

Vba 设置对象时类型不匹配,vba,Vba,我正在尝试使用VBa查询web API 我遇到的问题是返回结果引发此异常 类型不匹配 当我退出getJson函数时会发生这种情况(如下所示) 我不明白我在这里做错了什么问题在于对象声明: Dim jsonResult作为对象 设置jsonResults=getJson(查询) 您已经声明了一个名为jsonResult的对象,但在下一行中,您将使用可变名称的复数形式:jsonResults。因此,您需要更改其中一个变量名,使其匹配。您可以发布DecodeJson的代码吗?oops,updated,

我正在尝试使用VBa查询web API

我遇到的问题是返回结果引发此异常

类型不匹配

当我退出getJson函数时会发生这种情况(如下所示)


我不明白我在这里做错了什么

问题在于对象声明:

Dim jsonResult作为对象
设置jsonResults=getJson(查询)


您已经声明了一个名为
jsonResult
的对象,但在下一行中,您将使用可变名称的复数形式:
jsonResults
。因此,您需要更改其中一个变量名,使其匹配。

您可以发布DecodeJson的代码吗?oops,updated,sorry@BrianMStaffordI将尝试在函数的返回类型中显式显示。在这种情况下,将函数设为返回对象。发生错误时,哪一行突出显示?@MyDaftQuestions,因为您有一个全局变量
jsonResults
Function StartOfCode()
'...code
Dim jsonResult As Object
Set jsonResults = getJson(query)   'cannot get past this
'... more code
End Function


Function getJson(ByRef query As String) As Object

Dim MyRequest As Object
Set MyRequest = CreateObject("WinHttp.WinHttpRequest.5.1")

    With MyRequest
        .Open "GET", query
        .setRequestHeader "Content-Type", "application/json"
        .setRequestHeader "Accept", "application/json"
        .send           
    End With

Set getJson = DecodeJson(MyRequest.ResponseText) ' returns fine and I can see the object, of type Object/JScript/TypeInfo

Set MyRequest = Nothing

End Function

Function DecodeJson(JsonString As Variant) As Object
    Set DecodeJson = m_ScriptEngine.Eval("(" + JsonString + ")")   
End Function