'Class ClsUser
Public User As String
Public Company As String
Public Function AddUser(ByVal UserName As String, ByVal CompanyName As String)
User = UserName
Company = CompanyName
End Function
替换在模块VBA宝典:为什么我收集得到,每次重复
Public User_Collection As New Collection
Function Main()
Dim User_Data As ClsUser
Set User_Data = New ClsUser
Call Load_Collection(User_Data)
End Function
Function Load_Collection(ByRef ByRef oUser As ClsUser)
Set oUser = New ClsUser
Set User_Collection = New Collection
Dim arr(1) As String
arr(0) = "Jack"
arr(1) = "Jill"
For x = 0 to 1
oUser.User = arr(x)
User_Collection.Add oUser, oUser.User
next
End Function
每当oUser被更新,所以是集合中的每一个项目。最终结果是一组完全相同的项目。我究竟做错了什么?
*注意:我简化了代码,只显示与我的问题最相关的代码。
这正是问题所在。显然,每次添加新数据时都必须创建一个新的oUser对象。那个新对象然后被添加到集合中。 'Set oUser = New ClsUser oUser.User = arr(x)' – Kahlan 2015-01-09 22:38:56
我不明白你将如何处理这段代码,因为这两行是互相排斥的。 – Liniel 2015-01-09 22:45:16
这段代码是关于以最基本的形式测试集合对象的;了解它是如何工作的。现在我可以将它融入到我的程序中,这个程序要复杂得多。 – Kahlan 2015-01-09 22:57:45