如果语句不会启动,则不会检查VBA CheckBox

时间:2016-07-30 20:13:16

标签: excel-vba checkbox vba excel

这个超级简单的事情目前让我发疯。我有一个If语句来处理CheckBox_Click()事件,它应该根据CheckBox的状态执行两个操作之一。当盒子被选中时它可以正常工作,但当盒子未选中时它就不会做任何事情。我知道代码只是通过放一个MsgBox来告诉我,但If语句不会启动。请参阅以下代码:

Sub Chase_Visa_Click()
    'Check new button status for action.
    If Sheets("<Sheet Name>").Shapes("<CheckBox Name>").OLEFormat.Object.Value = 1 Then
        MsgBox ("Box checked.")
    ElseIf Sheets("<Sheet Name>").Shapes("CheckBox Name>").OLEFormat.Object.Value = 0 Then
        MsgBox ("Box unchecked.")
    End If
End Sub

根据我的阅读,未选中的值为0.我也尝试过“.Checked = False”之类的内容。非常感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

正如John Coleman上面所说,只需显示

的值
Sheets("<Sheet Name>").Shapes("<CheckBox Name>").OLEFormat.Object.Value

指出“-4146”是未经检查的CheckBox的值。

对于任何超级初学者,我选择的获取值的方法是

MsgBox(Sheets("<Sheet Name>").Shapes("<CheckBox Name>").OLEFormat.Object.Value)