我以前有以下工作代码
Set result = DecodeJson(MyRequest.responseText)
Dim keys() As String
keys = GetKeys(result.issues)
现在,我的方法发生了变化,而不是将结果作为对象,我收到了基于Array of class objects as class member in VBA的集合
Dim resultsFromQueries As Collection
Set resultsFromQueries = GetAllJSonObjects(searchString) ' this calls DecodeJson(MyRequest.responseText) as per the code snippet above
Dim i As Integer
For i = 0 To resultsFromQueries.Count
Dim keys() As String
Dim item As Object
Set item = resultsFromQueries.item(i + 1) ' I guess it's not 0 based?
keys = GetKeys(item.result.issues) 'KABOOM
我现在遇到的问题是我一直收到以下异常
运行时错误'424':
需要对象
在观看窗口中检查,item
显示为Variant/String
类型,其值为"[object Object]"
我需要施展吗?
答案 0 :(得分:1)
几周前我遇到了这个问题,问题如下:
使用以下代码收集集合:Collection.Add(OBJECT)
然而,这会导致将Object的值添加到Collection中,并且可以像离开parathesis一样简单地解决。Collection.add OBJECT
所以我的建议是进入GetAllJSonObjects(searchString)
函数和
寻找添加过程,并确保它没有parethesis。
像这样,Collection将包含Objects而不是变体,并且带有item(i + 1)的代码应该可以正常工作。