Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.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 从单个复选框在Excel中的所有复选框上运行宏_Vba_Excel_Excel 2007 - Fatal编程技术网

Vba 从单个复选框在Excel中的所有复选框上运行宏

Vba 从单个复选框在Excel中的所有复选框上运行宏,vba,excel,excel-2007,Vba,Excel,Excel 2007,我这里有Tim Williams的以下代码 使用复选框来选择/取消选择所有其他复选框非常有效,但每个复选框都被分配给另一个宏,即同一个宏,简称为复选框。我想在选中/取消选中其他复选框时调用复选框宏-可能吗?如果是,怎么做 Dim CB As checkbox For Each CB In ActiveSheet.CheckBoxes If CB.Name <> "Expand All Checkbox" Then CB.Value = ActiveSheet.CheckBox

我这里有Tim Williams的以下代码

使用复选框来选择/取消选择所有其他复选框非常有效,但每个复选框都被分配给另一个宏,即同一个宏,简称为复选框。我想在选中/取消选中其他复选框时调用复选框宏-可能吗?如果是,怎么做

    Dim CB As checkbox
For Each CB In ActiveSheet.CheckBoxes
If CB.Name <> "Expand All Checkbox" Then
CB.Value = ActiveSheet.CheckBoxes("Expand All Checkbox").Value
Call Checkbox
End If
Next CB

试试这个,我相信这就是你想要做的。

要是这么简单就好了!感谢您的回答,但此方法的问题在于,宏复选框包含与单击的复选框位置相关的代码。因此,此方法将相对于“全部展开”复选框的位置执行宏n次,而不是从每个单独的复选框CB本身执行宏。我编辑了代码-基本上您需要调用CB。在调用调用复选框之前选择,这将导致您可以通过其坐标引用CB
    Dim CB As checkbox
For Each CB In ActiveSheet.CheckBoxes
If CB.Name <> "Expand All Checkbox" Then
CB.Value = ActiveSheet.CheckBoxes("Expand All Checkbox").Value
Call Checkbox
End If
Next CB