Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
编写适用于VBA中多个复选框的代码_Vba_Excel_Checkbox - Fatal编程技术网

编写适用于VBA中多个复选框的代码

编写适用于VBA中多个复选框的代码,vba,excel,checkbox,Vba,Excel,Checkbox,我正在尝试为一个VBA用户表单编写一些代码,该表单有大约100个复选框。我想知道是否有一种方法可以让一段代码适用于任何复选框,或者我是否必须为checkbox1_-click、checkbox2_-click、checkbox3_-click等编写100个单独的函数 感谢您提前提供的帮助:) 编辑:我意识到这将有助于准确地解释我想做什么。将有100个复选框,每当单击其中一个复选框时,我都希望执行以下操作: 调用CheckBoxClicked(“checkboxname”)将其放入名为clsChe

我正在尝试为一个VBA用户表单编写一些代码,该表单有大约100个复选框。我想知道是否有一种方法可以让一段代码适用于任何复选框,或者我是否必须为checkbox1_-click、checkbox2_-click、checkbox3_-click等编写100个单独的函数

感谢您提前提供的帮助:)

编辑:我意识到这将有助于准确地解释我想做什么。将有100个复选框,每当单击其中一个复选框时,我都希望执行以下操作:


调用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”)。我实际上已经找到了答案。非常感谢:)