How to access Checkbox from VBA in Excel 2007

前端 未结 3 1899
暗喜
暗喜 2021-01-12 14:19

When adding a checkbox, how do you access the value from VBA?

  • In Excel 2007, on the Developer Ribbon
  • Insert, Form Controls, Checkbox
  • Rena
相关标签:
3条回答
  • 2021-01-12 15:04

    For completeness, if you're using an ActiveX checkbox instead of a regular checkbox, the syntax is

    If Sheet1.Shapes("chkMyCheck").OLEFormat.Object.Object.Value Then 
    ...
    

    found using the Locals window and a variable set to the shape -

    Dim shp as Shape
    Set shp = Sheet1.Shapes("chkMyCheck")
    Stop
    
    0 讨论(0)
  • 2021-01-12 15:09

    One way:

    Dim oCheck As Object
    Set oCheck = Sheet1.CheckBoxes("chkMyCheck")
    MsgBox (oCheck.Value = xlOn)
    

    Edit: here's another method - maybe this one will work for you...

    Sub Tester2()
        Dim sh As Shape
        For Each sh In Sheet1.Shapes
            If sh.Type = msoFormControl Then
                If sh.FormControlType = xlCheckBox Then
                     Debug.Print sh.Name & "=" & sh.ControlFormat.Value
                End If
            End If
        Next sh
    End Sub
    
    0 讨论(0)
  • 2021-01-12 15:15

    Figured it out

    If Sheet1.Shapes("chkMyCheck").ControlFormat.Value = xlOn Then
    .....
    
    0 讨论(0)
提交回复
热议问题