我在我正在构建的各种 vba 自定义对象中复制粘贴相同的属性和方法浪费了相当长的时间。如何在 VBA 中创建自定义对象层次结构,以便一个对象并从其他对象继承属性和方法。
在 python 中,我可能会写一些类似的东西:
类车(对象)
任何
慢车类(汽车)
继承任何东西
类 FastCar(汽车)
继承任何东西
提前谢谢。
我在我正在构建的各种 vba 自定义对象中复制粘贴相同的属性和方法浪费了相当长的时间。如何在 VBA 中创建自定义对象层次结构,以便一个对象并从其他对象继承属性和方法。
在 python 中,我可能会写一些类似的东西:
类车(对象)
任何
慢车类(汽车)
继承任何东西
类 FastCar(汽车)
继承任何东西
提前谢谢。
如果我明白你在说什么,这可以通过类模块来完成。
Car
例如)(如果尚未出现,请按 F4 使其出现)现在您已经创建了类模块,您可以定义它的变量和/或属性。下面的示例将进入您的Car
类模块创建一个包含汽车名称和速度的对象
Private carName As String
Private carSpeed As Integer
' Car Name
Public Property Get Name() As String
Name = carName
End Property
Public Property Let Name(result As String)
carName = result
End Property
' Car Speed
Public Property Get Speed() As Integer
Speed = carSpeed
End Property
Public Property Let Speed(result As Integer)
carSpeed = result
End Property
然后从您的模块中,您可以执行以下操作
Sub CreateMyCars()
Dim slowCar as Car
Dim fastCar as Car
Set slowCar = New Car
Set fastCar = New Car
slowCar.Name = "GoKart"
slowCar.Speed = 35
fastCar.Name = "Ferarri"
fastCar.Speed = 185
End Sub
VBA 通过使用接口支持继承,但它们只“继承”方法的签名,而不是实现。
重用对象实现的一种方法是通过组合。
Class Car(Object)
whatever
Class SlowCar(Car)
Implements Car
private mCar as Car
Private Sub Class_Initialize
set mCar = new Car
End Sub
Private Sub Car_whatever
Call mCar.whatever
End Sub
FastCar 也一样。