【问题标题】:VBA calling class let method, compile errorVBA调用类let方法,编译错误
【发布时间】:2014-12-06 23:31:03
【问题描述】:

初学者在这里学习类模块。我在基础知识方面遇到了麻烦-

当我设置(让)属性时,我得到“编译错误:参数数量错误或属性评估无效”,.Name 属性:

Sub test()
    Dim acc As account
    Set acc = New account
    MsgBox (acc.Name("First Account").rowNum())
End Sub

这是“帐户”类模块:

Private strAccName As String
Private mlngRowNum As Long


Public Property Let Name(strN As String)
    strAccName = strN
End Property


Public Property Get rowNum(exists As Boolean)
    dim rowNum as Long
    '...some logic here...
    '...
    getRowNum = rowNum
End Property

所以应该是我在 Let 方法中出错了?非常感谢您的建议

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    您可以通过等号为属性 LET(对于普通数据类型)或属性 SET(对于对象)分配值,而不是使用括号(用于方法),或者读取属性 GET 将值分配给另一个变量,像这样:

    acc.Name = "xyz"
    MsgBox acc.Name
    

    【讨论】:

      【解决方案2】:

      这可能会对您有所帮助:

      Sub test_class()
          Dim acc As account
          Set acc = New account
          acc.Name = "First Account"
          MsgBox acc.rowNum(1)
      End Sub
      

      类(帐户):

      Private strAccName As String
      Private mlngRowNum As Long
      
      Public Property Let Name(strN As String)
          strAccName = strN
      End Property
      
      
      Public Property Get rowNum(exists As Boolean)
          'Dim rowNum As Long
          '...some logic here...
          '...
          If exists Then
          'getRowNum = rowNum
          rowNum = 5
          Else
          rowNum = 10
          End If
      End Property
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-10-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多