2012-03-13 58 views
2

我很新使用vba中的類。我想使用數組作爲一個屬性,其中數組的長度必須是可變的。我四處尋找一種方法來做到這一點,但我真的不明白這些屬性是如何工作的。redim在類模塊中的屬性

所以我定義我的數組類模塊

Private pTestArray() As String 

和性質來獲取和設置值

Private Property Get TestArrayValue(index As Long) As String 
    TestArrayValue = qTestArray(index) 
End Property 

Private Property Let ArrayValue(index As Long, strValue As String) 
    pTestArray(index) = strValue 
End Property 

,但我不能找到一種方法,REDIM陣列。任何線索? 謝謝 C

+0

請使用代碼按鈕'{}'來設置您的代碼格式,並使您的帖子易讀。 – Fionnuala 2012-03-13 10:30:52

回答

5

所以,你想調整任務?那麼你可以檢查&處理Let屬性的界限;

Private Property Let ArrayValue(index As Long, strValue As String) 
    If index > UBound(pTestArray) Then ReDim Preserve pTestArray(index) 
    pTestArray(index) = strValue 
End Property 

您還需要在Class_Initialize事件與redim pTestArray(0)最初的尺寸。

+0

非常感謝Alex,那就是我一直在尋找的 – user1266138 2012-03-13 12:46:11

+0

+1好的解決方案,你也可以看看使用一個集合 – SWa 2012-03-14 16:19:13