2015-07-02 45 views
1

我有一個類( 「名稱」):通過類屬性循環?

Option Explicit 

Public companyName As String 
Public companyCode As String 
Public companyCountry As String 
Property Get fullInfo() As String 
    fullInfo = "Code " & companyCode & " is " & companyCountry & " for " & companyName 
End Property 

和在Sub()是一個模塊,我有以下:

Sub classTest() 

Dim c1 As New Names 
Dim c2 As New Names 
c1.companyCode = 14 
c1.companyCountry = "Ivory Coast" 
c1.companyName = "Ivory Company" 
c2.companyCode = 11 
c2.companyCountry = "Cameroon" 
c2.companyName = "Cameroon Company" 

Dim i As Integer 

debug.print c1.fullInfo 

End Sub 

這正確地將打印「代碼14是象牙象牙公司海岸「。

我該如何編寫一個循環來檢查所有屬性(是正確的單詞嗎?是c1,c2,屬性?)。我想是這樣的下方,但沒有奏效:

for i = 1 to 2 
debug.print ci.fullInfo 
next i 

你可以看到,它顯然是行不通的 - 但我怎樣才能得到它這樣做呢?對不起,我不知道c1部分叫什麼,也不知道後面的部分是什麼。被稱爲)

+0

我知道我可以做一個數組 - 我試圖學習其他的東西。它看起來像我想要做一個集合,所以我仍然可以保留這些「鍵」...而在數組中,我不能使用一個鍵只提取「companyCountry」 - 我必須知道這是存儲在數組(x,2)部分或其他東西。 – BruceWayne

+1

快速教程:http://www.wiseowl.co.uk/blog/s239/collections.htm – xQbert

回答

2

如果您將c1,c2等存儲在數組或集合中,則可以使用標準的For循環對它們進行循環,併爲它們中的每一個調用fullInfo。

Sub Tester() 

    Dim col As New Collection, n As Names, i 

    For i = 1 To 10 
     Set n = New Names 
     n.companyCode = i 
     n.companyCountry = "Country_" & i 
     n.companyName = "Company_" & i 
     col.Add n 
    Next i 


    For Each n In col 
     Debug.Print n.fullInfo 
    Next n 

End Sub 
+0

哦,謝謝 - 集合看起來像我試圖去。 – BruceWayne

1

看一個每個循環。像

For Each variable_name In collection_name 
    'Some code here. 
Next variable_name 
+0

試過,沒有工作,因爲我有我的代碼 - 它看起來像我需要首先進行收集。我會創建一個集合,這將工作。謝謝! – BruceWayne