2013-09-21 51 views
5

Ho una cartella di lavoro con oltre 100 caselle di controllo.Deseleziona tutti i checkbox dalla cartella di lavoro Excel con VBA Macro

Sono caselle di controllo sotto forma

vorrei a tutti loro non-selezionare in una volta

che li sta impostata su false.

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

Questo funziona per il foglio attivo. Mi piacerebbe che questo codice fosse per l'intera cartella di lavoro

Ho provato a cercare il codice e a cercare di svuotare le caselle di controllo, ma non ne sono più saggio.

sarei davvero grato se qualcuno potesse guidarmi

grazie

+0

Che tipo di caselle di controllo sono quelle? Controllo modulo o controllo ActiveX? –

+0

Bene, io [GUESS] (http://stackoverflow.com/questions/18927090/excel-active-x-checkbox-uncheck-by-default) sono ActiveX. In tal caso la risposta di Gary farà il lavoro :) –

risposta

10

Se hai OLEObject stile (ActiveX) caselle di controllo, quindi:

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:

Se sono moduli caselle, quindi il seguente funzionerà:

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 Bella :) –

+0

Ciao Gary, molte grazie per la tua risposta, le caselle di controllo sono di controllo del modulo e non attive x, questo codice funzionerà ancora? – user2533460

+0

Ciao Gary, Funziona perfettamente per caselle di controllo x attive nel foglio attivo. Sto cercando una macro quando si fa clic deselezionerà tutte le caselle di controllo del controllo del modulo nella cartella di lavoro, si prega di avvisare – user2533460

Problemi correlati