2013-09-21 17 views
5

Mam skoroszyt z ponad 100 pól wyboru.Odznacz wszystkie pola wyboru z skoroszytu programu Excel z makrem VBA

checkboxes kontroli forma

chciałbym je wszystkie un-wybrać co raz

który jest ustawiony im fałszywe.

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

Działa dla aktywnego arkusza. Chciałbym, aby ten kod był dla całego skoroszytu

Próbowałem poszukać kodu i rozmawiając o wyczyszczeniu pól wyboru, ale nie jestem mądrzejszy.

będę naprawdę wdzięczny jeśli ktoś mógłby poprowadzić mnie

dziękuję

+0

Jakie pola wyboru to te? Form Control lub formant ActiveX? –

+0

Cóż, ja [GUESS] (http://stackoverflow.com/questions/18927090/excel-active-x-checkbox-uncheck-by-default) to ActiveX. W takim przypadku odpowiedź od Gary'ego będzie do wykonania :) –

Odpowiedz

10

Jeśli masz OLEObject stylu (ActiveX) wyboru, a następnie:

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:

Jeśli są to tworzy pola wyboru, następnie następujące czynności będą działać:

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 Nice one :) –

+0

Witam Gary, bardzo dziękuję za odpowiedź, pola wyboru są formantem kontroli i nie są aktywne x, czy ten kod nadal działa? – user2533460

+0

Witaj Gary, działa to doskonale dla aktywnych pól wyboru w aktywnym arkuszu. Szukam jednego makro po kliknięciu usunie zaznaczenie wszystkich pól kontrolnych formularza w skoroszycie, proszę doradzić – user2533460