如何从VBa中的集合中获取对象

时间:2017-06-22 13:58:04

标签: vba excel-vba excel

我以前有以下工作代码

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]"

我需要施展吗?

1 个答案:

答案 0 :(得分:1)

几周前我遇到了这个问题,问题如下:

使用以下代码收集集合:Collection.Add(OBJECT) 然而,这会导致将Object的值添加到Collection中,并且可以像离开parathesis一样简单地解决。Collection.add OBJECT 所以我的建议是进入GetAllJSonObjects(searchString)函数和 寻找添加过程,并确保它没有parethesis。 像这样,Collection将包含Objects而不是变体,并且带有item(i + 1)的代码应该可以正常工作。

祝你好运!