我有一个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
上显示该行的错误。有什么可能导致它?