嗨,我对 VBA 相当陌生,我需要创建一个具有相对复杂的 Getter 和 Setter 的对象。为此,我不断检查MSDN但显然我不明白一些东西,因为 VBE 不断突出显示开始和结束的行:Property(它显然需要 Get 或 Let?)、Get(它显然需要标识符)、Let(它显然也需要标识符)。
但我试图遵循更简洁的表示法,其中 Get 和 Let 方法位于 Microsoft 在其示例中使用的属性声明中(请参阅上面的链接)。
有人可以告诉我我的语法哪里错了吗(或者微软的文档)???
谢谢
Private Matrix() As Vector
Property Transition()
Public Get(Old_S As String, New_S As String, Period As Integer) As Double
' Some Code
Return Matrix(Column, Row).Value(Period)
End Get
Public Let(Old_S As String, New_S As String, Vector_String As String)
' Some Code
Matrix(Row, Column).Value = Vector_String
End Let
End Property
最佳答案
您正在阅读 VB.NET 的文档。这就是你感到困惑的原因。 VBA 中属性的语法不同。在 VBA 中,属性的 Get
和 Let
不组合在一起。它们需要单独列出,本质上就像两个单独的方法:
Private mMyProperty As String
Public Property Get MyProperty() As String
MyProperty = mMyProperty
End Property
Public Property Let Transition(Value As String)
mMyProperty = Value
End Property
有关 VBA 引用资料,请尝试从 here 开始.
关于VBA复杂的Getter、Setter语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29257127/