调⽤VBA⽤户窗体中控件的事件过程(使⽤类模块)VBA UserForm中组合框的Exit事件声明格式如下:
Private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
控件的使用如果要在其他地⽅调⽤该事件过程,⼤家⾸先想到的是Call ComboBox1_Exit(Cancel:=True)
然⽽这样会弹出类型不匹配的对话框。
第⼀步:向VBA⼯程插⼊⼀个类模块,命名为ClsReturn,并且书写如下代码:
Implements MSForms.ReturnBoolean
Private V As Boolean
Private Property Get ReturnBoolean_Value() As Boolean
ReturnBoolean_Value = V
End Property
Private Property Let ReturnBoolean_Value(ByVal RHS As Boolean)
V = RHS
End Property
Public Property Get Value() As Boolean
Value = V
End Property
Public Property Let Value(ByVal RHS As Boolean)
V = RHS
End Property
第⼆步:向⽤户窗体放⼊⼀个ComboBox控件、两个CommandButton控件。
录⼊如下代码:
Private Instance As ClsReturn
Private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Cancel Then
Debug.Print "点击了第1个按钮"
Else
Debug.Print "点击了第2个按钮"
End If
End Sub
Private Sub CommandButton1_Click()
Instance.Value = True
Call ComboBox1_Exit(Cancel:=Instance)
End Sub
Private Sub CommandButton2_Click()
Instance.Value = False
Call ComboBox1_Exit(Cancel:=Instance)
End Sub
Private Sub UserForm_Initialize()
Set Instance = New ClsReturn
End Sub
启动窗体,不要碰那个组合框,⽽是点击两个按钮
你会看到窗体标题变成了:你点击了第两个按钮。
以上做法,还可以应⽤于其他类型的控件,例如⽂本框的KeyPress事件等。
原理不解释
⼤家⾃⼰悟
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论