我正在使用类模块来存储按钮位置的值。我将使用相同的函数连续添加3个按钮,因此需要更改.left
以根据其类型定位按钮;
即“创建”按钮,我将查看A列的
.Left
值对于“更新”按钮,我将查看B列的
.Left
值对于“销毁”按钮,我将查看C列的
.Left
值
我可以在我的代码中添加case select,但为了便于阅读,我认为它在类模块中会更好。
目前我正在尝试执行以下操作 - 类模块中的相关行:
Private pLeft As Long
Public Property Get Left() As Long
Left = pLeft
End Property
Public Property Let Left(strType As String)
Select Case strType
Case "Create"
pLeft = pRange.Offset(0, 4).Left
Case "Update"
pLeft = pRange.Offset(0, 5).Left
Case "Open"
pLeft = pRange.Offset(0, 6).Left
End Select
End Property
模块中的相关行:
Dim Button As CButton
sub LetValueForLeft()
Set Button = New CButton
Button.Left = "Create"
End Sub
心碎我得到了错误:
我认为这是因为我正在使用一个字符串并且用很长的时间进行GET,有没有办法解决这个问题?
我一直在使用下面真正有用的指南,但它没有说明这种情况:
答案 0 :(得分:2)
属性的Let
和Get
必须是同一类型。如果我正确理解您要执行的操作,您始终可以将Left
设为只读属性并使用方法对其进行初始化:
'Class
Private pLeft As Long
Public Property Get Left() As Long
Left = pLeft
End Property
Public Sub AssignLeft(strType As String)
Select Case strType
Case "Create"
pLeft = pRange.Offset(0, 4).Left
Case "Update"
pLeft = pRange.Offset(0, 5).Left
Case "Open"
pLeft = pRange.Offset(0, 6).Left
End Select
End Sub
你会这样称呼它:
Set Button = New CButton
Button.AssignLeft "Create"