類模塊的編寫跟日常寫代碼的編程思想有很大反差,類模塊的主題是創建,而日常的代碼是使用。
類模塊裏是禁止使用Public類型的動態數組作為模塊級變量的,而私有級的變量外界不可直接調用,那麽也失去了數組的意義。
因為通過類模塊創建的實例,我們通常稱之為對象,而縱觀Applicaiton集合對象,Range集合對象,Addins集合對象,等等各種對象,似乎官方總會給予壹個“集合”概念。實際上,這裏的“集合”就相當於壹個動態數組,比如WorkBooks(1)就返回第壹個工作簿,WorkSheets(2)就返回第二個工作表,這個不正是動態數組所需要表達的意義麽!?
所以,建議妳嘗試使用Collect對象,來實現類似於動態數組的功能。給妳壹個參考示例:
Rem?-==巴蜀兄弟連==-?團隊提供支持Public?Arr?As?New?Collection
Public?Function?Add(ByRef?R?As?Range)?As?Range
Set?Add?=?R'創建對參數R對應單元格的引用
Arr.Add?Add'將建立的引用實例添加到Arr集合
End?Function
然後標準模塊創建實例,並返回集合元素的值:
Private?mm?As?New?unsamesky'創建類模塊unsamesky的壹個實例mmPrivate?Sub?xx()
Dim?i?As?Long
For?i?=?1?To?10
mm.Add?Sheet1.Cells(i,?1)'給A1到A10單元格添加到mm實例的Arr集合中
Next
End?Sub
Sub?yy()
Call?xx'調用xx
MsgBox?mm.Arr(3)'試試返回集合的第3個元素,也就是工作表的第A3單元格的內容!
End?Sub
可使用附件測試: