2015-09-05 2 views
1

У меня есть лист excel с флажками из диапазона «D12» на «D26», при нажатии кнопки abutton я хочу выбрать все флажки, но на основе только диапазона, то есть всех флажков в Range("D12:D26").Выберите CheckBoxes в Excel с помощью VBA

код, который я использую ниже, но не работает для меня:

Private Sub SelectALL_Click() 

    Dim cells As Range 
    Dim rng As Range 

    Set rng = Sheet1.Range("D12:D14") 



    For Each cells In rng 
     cells.Select 
    Next 


End Sub 
+2

Какой тип флажка - формы или ActiveX? –

ответ

3

Поскольку вы не упомянули, что такой контроль является его (ActiveX или Form Control), сделайте ваш выбор

Форма управления Пример Пример

Sub FormControl_Example() 
    Dim shp As Shape 
    Dim rng As Range, rngShp As Range 

    With ThisWorkbook.Sheets("Sheet1") '<~~ Change this to the relevant sheet name 
     Set rng = .Range("D12:D14") 

     For Each shp In .Shapes 
      Set rngShp = .Range(shp.TopLeftCell.Address) 

      If Not Intersect(rngShp, rng) Is Nothing Then 
       shp.OLEFormat.Object.Value = True 
      End If 
     Next 
    End With 
End Sub 

управления ActiveX

Sub ActiveX_Example() 
    Dim shp As Shape 
    Dim rng As Range, rngShp As Range 

    With ThisWorkbook.Sheets("Sheet1") '<~~ Change this to the relevant sheetname 
     Set rng = .Range("D12:D14") 

     For Each shp In .Shapes 
      Set rngShp = .Range(shp.TopLeftCell.Address) 

      If Not Intersect(rngShp, rng) Is Nothing Then 
       .OLEObjects(shp.Name).Object.Value = True 
      End If 
     Next 
    End With 
End Sub