2013-09-21 106 views
5

我有一个包含100多个复选框的工作簿。使用VBA宏从Excel工作簿中取消选择所有复选框

他们表单控件复选框

我想那是他们设置为false一次

于未将其全部选中。

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

这适用于活动工作表。我想这个代码是为整个工作簿

我已经尝试寻找代码和搞清楚复选框,但我都不明智。

我会很感激,如果有人能指导我

谢谢

+0

什么样的复选框是那些?表单控制或ActiveX控件? –

+0

嗯,我[GUESS](http://stackoverflow.com/questions/18927090/excel-active-x-checkbox-uncheck-by-default)他们是ActiveX。在这种情况下,盖瑞的答案将完成这项工作:) –

回答

10

如果你有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

+ 1不错的一个:) –

+0

嗨加里,非常感谢您的回答,复选框是窗体控件,而不是活动X,这个代码仍然工作? – user2533460

+0

嗨加里,这对活动工作表中的活动x复选框完美无瑕。我正在寻找一个宏,单击时将取消选中工作簿中的所有表单控件复选框,请告知 – user2533460

相关问题