使用VBA宏从Excel工作簿中取消选中所有复选框

时间:2013-09-21 00:28:36

标签: excel vba checkbox unselect

我有一个包含100多个复选框的工作簿。

它们是表单控件复选框

我想一次取消选择它们

将它们设置为false。

 Sub clearcheck()
 ActiveSheet.CheckBoxes.Value = False
 End Sub

这适用于活动工作表。我希望这段代码适用于整个工作簿

我已经尝试过查找代码并搞乱清除复选框,但不是更明智。

如果有人能引导我,我真的很感激

谢谢

2 个答案:

答案 0 :(得分:11)

如果您具有OLEObject样式( ActiveX )复选框,则:

Sub terranian()
    Dim o As Object
    For Each o In ActiveSheet.OLEObjects
        If InStr(1, o.Name, "CheckBox") > 0 Then
            o.Object.Value = False
        End If
    Next
End Sub

<强> EDIT1:

如果它们是表单复选框,则以下内容将起作用:

Sub clearcheck()
    Dim sh As Worksheet
    For Each sh In Sheets
        On Error Resume Next
            sh.CheckBoxes.Value = False
        On Error GoTo 0
    Next sh
End Sub

答案 1 :(得分:0)

选择的答案是完美的,但是我需要能够通过表单复选框的按钮清除活动工作表或所有复选框。将两个子例程放入一个“模块”中对我来说很有效。然后,我为每个动作创建了一个按钮,并映射到了各个子例程。

'Uncheck all checkboxes in entire excel workbook
Sub uncheck_all()
    Dim sh As Worksheet
    For Each sh In Sheets
        On Error Resume Next
            sh.Checkboxes.Value = False
        On Error GoTo 0
    Next sh
End Sub

'Uncheck all checkboxes in active sheet
Sub uncheck_active_sheet()
    ActiveSheet.Checkboxes.Value = False
End Sub