清除所有复选框

时间:2015-10-18 06:05:53

标签: excel forms excel-vba checkbox vba

我正在创建一个宏来清除我的表单中的单元格和所有CheckBox,但它只清除第一个组框中的CheckBoxes(并勾选所有其他复选框)。我的代码:

Sub clearcheck()
 ActiveSheet.CheckBoxes.Value = False

 Range("D4:E4").Select

    Selection.ClearContents
    ActiveSheet.Shapes.Range(Array("Label 61")).Select
    Range("H4:I4").Select
    Selection.ClearContents
    Range("M4:N4").Select
    Selection.ClearContents

 End Sub

Screenshot

 http://i.stack.imgur.com/ddkxF.png

任何人都可以帮我处理我的代码吗?

1 个答案:

答案 0 :(得分:1)

您可能面临将FormControls与ActiveX控件混合的典型问题。试试这段代码,让我知道它是否有效:

Public Sub UncheckAll()

On Error Resume Next
For Each x In Worksheets("Sheet2").Shapes
    Select Case x.Type
    Case 8
        Debug.Print x.Name & " is a FormControl"
        x.OLEFormat.Object.Value = False
    Case 12
        Debug.Print x.Name & " is an ActiveX Control"
        Worksheets("Sheet2").OLEObjects(x.Name).Object.Value = False
    Case Else
        Debug.Print x.Name & " is neither"
    End Select
Next x
On Error GoTo 0

End Sub