我正在使用VBA自定义类玩(学习(,我无法弄清楚一件事,或者我什至不知道是否有可能(在VBA中继承限制(
我收集了有关从这篇文章中束缚的东西VBA类方法链接
在上面的链接中的示例中,您可以写
obj.Borders.Color '-> this will return long type of color value
但是您无法使用obj.Borders
,因为Borders
被声明为派生类,在Main类obj
中声明,颜色是此派生类的属性。
我要弄清楚的是如何在自定义类中链接属性/方法
之类的东西dim pvt as pivottable
set pvt = ....
pvt.pivotcache '-> method returns pivotcache object
pvt.pivotcache.memoryused '-> returns property of pivotcache object
任何简单的示例如何使用自定义类进行此操作。我似乎无法将我的头缠住。
预先感谢您的任何示例
当类具有具有另一个属性的类型的属性时,您可以像包含另一个包含另一个包含另一个盒子的框的框一样使用它们,依此类推。当属性不包含任何属性时,它是 atomic
,并且仅包含一个像e.g的值。string
或long
。示例
名为
对象的引用Pivottable
的顶级类。包含对类型Pivotcache
Private m_pivotcache As Pivotcache
Private Sub Class_Initialize()
Set m_pivotcache = New Pivotcache
End Sub
Public Property Get Pivotcache() As Pivotcache
Set Pivotcache = m_pivotcache
End Property
Public Property Let Pivotcache(ByVal vNewPivotcache As Pivotcache)
Set m_pivotcache = vNewPivotcache
End Property
另一个名为
Pivotcache
的类。它具有Long
类型的原子属性MemoryUsed
。
Private m_memoryused As Long
Private Sub Class_Initialize()
m_memoryused = 0
End Sub
Public Property Get MemoryUsed() As Long
MemoryUsed = m_memoryused
End Property
Public Property Let MemoryUsed(ByVal vNewMemoryUsed As Long)
m_memoryused = vNewMemoryUsed
End Property
标准模块中的测试
Sub test()
Dim pvt As Pivottable
Set pvt = New Pivottable
pvt.Pivotcache.MemoryUsed = 123456789
Debug.Print pvt.Pivotcache.MemoryUsed
End Sub