2015-09-05 233 views
1

我有一個Excel範圍的複選框,範圍從「D12」到「D26」,點擊按鈕我想選擇所有複選框,但僅基於範圍,即Range("D12:D26")中的所有複選框。我現在用使用VBA在Excel中選擇複選框

代碼如下,但不是爲我工作:

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或窗體控件),你挑

表對照實施例

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