2015-10-18 4 views
2

Я создаю макрос для очистки ячеек и ВСЕХ CheckBoxes из моей формы, однако он очищает CheckBox только в первом групповом поле (и оставляет отметки всех остальных флажков). Мой код:Очистить все флажки

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

Возможно, вы столкнулись с типичной проблемой смешивания 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 
Смежные вопросы