通过CommandButton取消选中整个工作簿中的所有复选框

jcv*_*jcv 3 checkbox excel vba excel-vba activexobject

我希望有一个代码可以取消工作簿中所有工作表的所有名为"CheckBox1"的复选框.遗憾的是,我当前的代码不起作用,我不知道为什么 - 它只适用于活动表.

Private Sub CommandButton1_Click()

    Dim Sheet As Worksheet
    For Each Sheet In ThisWorkbook.Worksheets

        Select Case CheckBox1.Value
        Case True: CheckBox1.Value = False
        End Select  
    Next
End Sub
Run Code Online (Sandbox Code Playgroud)

小智 5

此代码遍历所有工作表(名为Sheet100和的工作OtherSheet除外)并取消ActiveX选中所有名为的复选框CheckBox1

Sub uncheck_boxes()

    Dim ws As Worksheet
    Dim xbox As OLEObject
    For Each ws In ThisWorkbook.Worksheets
        If ws.Name <> "Sheet100" And ws.Name <> "OtherSheet" Then
            For Each xbox In ws.OLEObjects
                ws.OLEObjects("CheckBox1").Object.Value = False
            Next
        End If
    Next
End Sub
Run Code Online (Sandbox Code Playgroud)

取消ActiveX选中所有工作表中的所有复选框,而不考虑使用的名称

Sub uncheck_all_ActiveX_checkboxes()

    Dim ws As Worksheet
    Dim xbox As OLEObject
    For Each ws In ThisWorkbook.Worksheets
        For Each xbox In ws.OLEObjects
            ws.OLEObjects(xbox.Name).Object.Value = False
        Next
    Next
End Sub
Run Code Online (Sandbox Code Playgroud)

要取消选中Form Control checkboxes电子表格中的所有内容

Sub uncheck_forms_checkboxes()

    Dim ws As Worksheet
    Dim xshape As Shape
    For Each ws In ThisWorkbook.Worksheets
        For Each xshape In ws.Shapes
            If xshape.Type = msoFormControl Then
                xshape.ControlFormat.Value = False
            End If
        Next
    Next
End Sub
Run Code Online (Sandbox Code Playgroud)