Excel复选框查看是否已选中

时间:2018-02-20 11:32:22

标签: vba excel-vba checkbox excel

我有一个转换为自选图形类型的chekcbox 如果您运行以下代码,您将获得类型1: 打印ActiveSheet.Shapes(“复选框5”)。键入 1

有没有办法看看它是否被检查过?

我尝试了以下代码,但它们不起作用:

ActiveSheet.Shapes("Check Box 5").OLEFormat.Object.Value = 1

ActiveSheet.Shapes("Check Box " & i).ControlFormat.Value = False

1 个答案:

答案 0 :(得分:0)

您可以创建一个检查编号的CheckBox的函数:

Function GetCheckBoxValue(i As Integer) As Boolean
    GetCheckBoxValue = (ActiveSheet.Shapes("Check Box " & i).OLEFormat.Object.Value = 1)
End Function

然后,您可以使用它来测试IF语句中的值,例如:

Sub test()
    If GetCheckBoxValue(5) Then
        MsgBox "It's ticked"
    Else
        MsgBox "It's not ticked"
    End If
End Sub

或者您可以通过以下方式运行它们并进行测试:

Sub test2()
    Dim x As Integer
    For x = 1 To 5
        If GetCheckBoxValue(x) Then
            MsgBox "Check Box " & x & " is ticked"
        Else
            MsgBox "Check Box " & x & " is not ticked"
        End If
    Next
End Sub