我已经在 excel 中使用 VBA 类模块有一段时间了,但我不确定我是否正确地创建了它们。我通常为类创建模块级变量,然后创建属性 let 和 get 函数。例如:
Private msRegion As String
Property Get Region() As String
Region = msRegion 'Return the Region
End Property
Property Let Region(ByVal sRegionName As String)
msRegion = sRegionName 'Set the Region
End Property
当我查看本地窗口中的对象时,我注意到对于每个属性,我最终都得到了模块作用域变量和 Let 函数所需的变量。这对我来说似乎是一个变量的重复。我担心,如果我将大量具有多个属性的对象集合起来,就资源而言可能会很昂贵。
我试图修改代码,以便对象类中只有一个变量,但到目前为止,我只收到了错误消息。
有谁知道在类模块中创建不会导致重复变量的属性的方法?
编辑:
我刚刚又看了看我的 locals 窗口,并意识到 let 属性的参数不存在。这两个表达式似乎是私有存储的变量和属性获取值,在本例中为 msRegion 和 Region。这符合 Cor_Blimey 的回答。