Excel vba:对象变量或未设置块变量,获取类集合

时间:2017-11-22 16:48:09

标签: excel vba excel-vba

我有一个Client类,其中包含losses Collection。我稍后在程序中使用该集合,检索其元素。但是,现在我在尝试检索元素时遇到object variable or with block variable not set错误(在代码中稍作更改后):

这些是Client类的内部:

Public Property Let setSumLosses(value As Collection)
    Set sumLosses = value
End Property


Private Sub Class_Initialize()
    Set sumLosses = New Collection
End Sub

Private losses As Collection
Private sumLosses As Collection

Public Property Get getLosses()
    Set getLosses = losses
End Property

此功能用于主子:

Function calculateSumLosses(clientsColl As Collection)
    Dim clientCopy As client

    For Each clientCopy In clientsColl
         MsgBox ("here: " & clientCopy.getLosses.Item(simulation)) 'msgBoxes fine

         ...
    Next

    ...
End Function

修改 calculateLosses内的Client函数:

Public Sub calculateLosses()
    Set losses = New Collection

    Dim i As Long
    For i = 1 To outcomes.Count
        If outcomes(i) = 1 Then
            losses.Add totalLoss
        ElseIf outcomes(i) = 0 Then
            losses.Add 0
        Else
            losses.Add Null
        End If
    Next
End Sub

主要分:

clientCopy.calculateLosses        
clientCopy.setSumLosses = calculateSumLosses(clientsDividedColl)

问题是,虽然错误出现在MsgBox行," here"部分和元素本身仍然打印出来,只有在我点击" OK"在MsgBox上显示该行的错误。有什么可能导致它?

0 个答案:

没有答案