Ich versuche, eine Web-API mit VBa abzufragen.Typ Mismatch beim Setzen eines Objekts
Das Problem, das ich habe, ist das Rückergebnis diese Ausnahme
wirftType Mismatch
Dies geschieht, wenn ich die getJSON Funktion verlassen (siehe unten)
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
I verstehe nicht, was ich hier falsch gemacht habe
Könnten Sie den Code für DecodeJson veröffentlichen? –
Oooops, aktualisiert, sorry @BrianMStafford – MyDaftQuestions
Ich würde versuchen, in den Rückgabetypen Ihrer Funktionen explizit zu sein. In diesem Fall stellen Sie mit Ihren Funktionen das Objekt zurück. –