'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