所以我基本都在Excel中从日历中包含的数据行的列表,所有谁创造了他们每个用户。我正在为每个用户制作一个对象集合。在将个人添加到第1个集合后,我在用户对象内部创建了另一个名为“Events”的集合。这是存储事件类型和日期的地方。我无法将数组添加到Collection“Events”中。添加阵列收集VBA
“用户”对象是这样的:
User
-Name
-Events [event1, event2, event3, ..., etc]
我得到的错误“对象变量或带变量未设置”这是在结束从下面的代码所采取的行的neested if和else if,让这个错误的语句:
temp.Events.Add arr1
emp2.Events.Add arr2
代码:
Do Until IsEmpty(Cells(i, 5))
Dim name As String
'grab name in cell
name = Cells(i, 5)
'if first list item, add new user
If list.Count = 0 Then
Dim emp1 As New User
emp1.name = name
list.Add emp1
Else
'traverse through list and search for same name
For j = 1 To list.Count
'if name is present, add event data to user object
If list.Item(j).name = name Then
Dim temp As New User
Set temp = list.Item(j)
Dim arr1(2) As String
arr1(1) = Cells(i, 3)
arr1(2) = Cells(i, 1)
temp.Events.Add arr1
'if name is not present, add new user and event data to new user object
ElseIf j = list.Count Then
Dim emp2 As New User
emp2.name = name
Dim arr2(2) As String
arr2(1) = Cells(i, 3)
arr2(2) = Cells(i, 1)
emp2.Events.Add arr2
list.Add emp2
End If
Next
End If
i = i + 1
Loop
如果这样做的任何更简单的方法,或者如果这是不可能的,请点我在正确的方向。任何帮助是极大的赞赏。谢谢。
在构造你的'User'对象,你'初始化Events' ? – sigil