2013-09-21 101 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

相關問題