创建集合和类:caas,caa,cbbs,cbb
代码如下:
caas:
Public Key As String
Private mvarstr As String '局部复制
Private mvarcbbs As cbbs
Private mvarItem As cbbs '局部复制
Public Property Set Item(ByVal vData As cbbs)
    Set mvarItem = vData
End PropertyPublic Property Get Item() As cbbs
If mvarItem Is Nothing Then
    Set mvarItem = New cbbs
End If
    Set Item = mvarItem
End PropertyPublic Property Get cbbs() As cbbs
    If mvarcbbs Is Nothing Then
        Set mvarcbbs = New cbbs
    End If
    Set cbbs = mvarcbbs
End Property
Public Property Set cbbs(vData As cbbs)
    Set mvarcbbs = vData
End Property
Private Sub Class_Terminate()
    Set mvarcbbs = Nothing
End SubPublic Property Let str(ByVal vData As String)
    mvarstr = vData
End PropertyPublic Property Get str() As String
    str = mvarstr
End Propertycaa:
Private mCol As CollectionPublic Function Add(Key As String, str As String, Optional sKey As String) As caa
    Dim objNewMember As caa
    Set objNewMember = New caa    objNewMember.Key = Key
    objNewMember.str = str
    If Len(sKey) = 0 Then
        mCol.Add objNewMember
    Else
        mCol.Add objNewMember, sKey
    End If
    Set Add = objNewMember
    Set objNewMember = Nothing
End FunctionPublic Property Get Item(vntIndexKey As Variant) As caa
  Set Item = mCol(vntIndexKey)
End PropertyPublic Property Get Count() As Long
    Count = mCol.Count
End Property
Public Sub Remove(vntIndexKey As Variant)
    mCol.Remove vntIndexKey
End Sub
Public Property Get NewEnum() As IUnknown
    Set NewEnum = mCol.[_NewEnum]
End PropertyPrivate Sub Class_Initialize()
    Set mCol = New Collection
End Sub
Private Sub Class_Terminate()
    Set mCol = Nothing
End Sub
cbbs:
Private mCol As CollectionPublic Function Add(Key As String, dd As String, Optional sKey As String) As cbb
    Dim objNewMember As cbb
    Set objNewMember = New cbb
    objNewMember.Key = Key
    objNewMember.dd = dd
    If Len(sKey) = 0 Then
        mCol.Add objNewMember
    Else
        mCol.Add objNewMember, sKey
    End If
    Set Add = objNewMember
    Set objNewMember = Nothing
End FunctionPublic Property Get Item(vntIndexKey As Variant) As cbb
  Set Item = mCol(vntIndexKey)
End PropertyPublic Property Get Count() As Long
    Count = mCol.Count
End PropertyPublic Sub Remove(vntIndexKey As Variant)
    mCol.Remove vntIndexKey
End Sub
Public Property Get NewEnum() As IUnknown
    Set NewEnum = mCol.[_NewEnum]
End Property
Private Sub Class_Initialize()
    Set mCol = New Collection
End Sub
Private Sub Class_Terminate()
    Set mCol = Nothing
End Subcbb:
Public Key As StringPrivate mvardd As String '局部复制
Public Property Let dd(ByVal vData As String)
    mvardd = vData
End PropertyPublic Property Get dd() As String
    dd = mvardd
End Property
窗体代码如下:Private Sub Command1_Click()
Dim ucaa As New caa
ucaa.str = "10"
For i = 1 To 3
With ucaa.Item(i)
    .dd = "dd" & i
End With
Next i
End Sub运行出错,请大哥大姐帮忙检查原因