VBA复杂的Getter,Setter语法

sgp*_*667 2 excel vba excel-vba

嗨,我对VBA很新,我需要用相对复杂的Getter和Setter创建一个对象.要做到这一点,我不断检查MSDN,但显然我不明白的东西,因为VBE继续突出显示行开始和结束:属性(它显然需要Get或Let ??),Get(它显然需要标识符),让(显然需要)标识符也是如此).

但我试图遵循更简洁的表示法,其中Get和Let方法位于Microsoft在其示例中使用的Property Statement中(参见上面的链接).

谁能告诉我我的语法错在哪里(或微软的文档)?

谢谢

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
Run Code Online (Sandbox Code Playgroud)

Ste*_*art 8

您正在阅读VB.NET的文档.这就是你感到困惑的原因.VBA中的属性语法不同.在VBA中,属性GetLet属性不会组合在一起.它们需要单独列出,基本上像两个单独的方法:

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
Run Code Online (Sandbox Code Playgroud)

对于VBA参考资料,请尝试从此处开始.