编写适用于VBA中多个复选框的代码
我正在尝试为一个VBA用户表单编写一些代码,该表单有大约100个复选框。我想知道是否有一种方法可以让一段代码适用于任何复选框,或者我是否必须为checkbox1_-click、checkbox2_-click、checkbox3_-click等编写100个单独的函数 感谢您提前提供的帮助:) 编辑:我意识到这将有助于准确地解释我想做什么。将有100个复选框,每当单击其中一个复选框时,我都希望执行以下操作:编写适用于VBA中多个复选框的代码,vba,excel,checkbox,Vba,Excel,Checkbox,我正在尝试为一个VBA用户表单编写一些代码,该表单有大约100个复选框。我想知道是否有一种方法可以让一段代码适用于任何复选框,或者我是否必须为checkbox1_-click、checkbox2_-click、checkbox3_-click等编写100个单独的函数 感谢您提前提供的帮助:) 编辑:我意识到这将有助于准确地解释我想做什么。将有100个复选框,每当单击其中一个复选框时,我都希望执行以下操作: 调用CheckBoxClicked(“checkboxname”)将其放入名为clsChe
调用CheckBoxClicked(“checkboxname”)将其放入名为clsCheckBoxHandler的模块化类中
Public WithEvents chk As MSForms.CheckBox
Private Sub chk_Click()
MsgBox chk.Caption & " Clicked!"
End Sub
然后在Userform中
Dim chkCollection As Collection
Private Sub UserForm_Initialize()
Dim cCont As Control
Dim chkH As clsCheckBoxHandler
Set chkCollection = New Collection
For Each cCont In Me.Controls
If TypeName(cCont) = "CheckBox" Then
Set chkH = New clsCheckBoxHandler
Set chkH.chk = cCont
chkCollection.Add chkH
End If
Next cCont
End Sub
这只是一个简单的复选框处理程序,它有一个单击事件,但可以扩展到包括多个控件和事件。当您提问时,答案是您可以拥有:一段代码非常感谢您的帮助。如果这不是太多的要求,你能告诉我我将如何编写这个程序,以便当一个复选框被点击时,它运行一个子传递复选框名称作为字符串。基本上,我希望每次有复选框点击时都能调用CheckBoxClicked(“checkboxname”)。我实际上已经找到了答案。非常感谢:)