2012-03-13 102 views
2

嗨,我可以使用一個變量來創建一個對象。 我有一個數組名稱和每個這些名稱,我想創建一個對象。 所以我("Max", "Tim", "Fred") ,並想通過數組,結果循環,我得到類似做手工這樣創建對象列表

Dim Max as CmyClass 
Dim Tim as CmyClass 
Dim Fred as CmyClass 

(如果這是非常反對規劃的所有好習慣的東西,請讓我知道如何在正確地做)

感謝

+0

我不知道我知道你想用數組做什麼。你可以說得更詳細點嗎? – assylias 2012-03-13 15:01:15

+0

這對Scripting.Dictionary很好用,只要你的「名字」都是唯一的 – 2012-03-13 15:01:56

回答

2

這並不是針對良好編程,據我知道,但你需要的東西的對象存儲,這在VBA的情況下會是一個數組或一個集合。

像這樣

Sub test() 
    Dim col As Collection 

    Set col = New Collection 

    For i = 0 To 4 
     Dim Name As Class1 
     Set Name = New Class1 
     col.Add Name, "test" & i 
    Next i 
End Sub 
+0

非常感謝答案。將嘗試今天實現這一點 – user1266138 2012-03-15 07:51:07

1
Sub Tester() 

    Dim d As Object 
    Dim o As CmyClass 
    Dim arr, k, x 

    Set d = CreateObject("scripting.dictionary") 

    arr = Array("Max", "Tim", "Fred") 

    For x = LBound(arr) To UBound(arr) 
     Set o = New CmyClass 
     'set o properties etc 
     o.Name = "Name is " & arr(x) 
     d.Add arr(x), o 
    Next x 


    For Each k In d.keys 
     Debug.Print k, d(k).Name 
    Next k 

End Sub