所以我基本上有一个excel中的行列表,其中包含日历中的数据,所有这些行都包含每个创建它们的用户。我正在为每个用户创建一个对象集合。将个人添加到第一个集合后,我在用户对象中有另一个名为“Events”的集合。这是存储事件类型和日期的位置。我在将数组添加到Collection“Events”时遇到了问题。
“user”对象如下所示:
用户
-Name
-Events [event1,event2,event3,...等]
我收到“对象变量或未设置变量”的错误以下是在嵌套的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
如果有更简单的方法可以做到这一点,或者如果无法做到这一点,请指出正确的方向。任何帮助是极大的赞赏。感谢。
答案 0 :(得分:0)
在User类中添加方法Class_Initialize并初始化变量。现在,只有在使用
时使用的第一个方法才会调用此方法Dim temp As New User
在调用对象的方法之前,它仍未初始化。
在使用
之前,您需要使用以下方式初始化它Dim temp As User
set temp = New User 'now it is initialized
在您的用户类
中Private Sub Class_Initialize()
'code here
End Sub