0

我试图阻止 excel 工作簿根据复选框的状态关闭。

我放置在“ThisWorkbook”中的示例代码:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    If CheckBox0.Value = "FALSE" Then
    b = MsgBox("Are you sure that you want to submit?", vbYesNo)
    End If
    If b = vbNo Then Cancel = True

End Sub

目前,我收到运行时错误 424 ,需要对象,并且调试点位于 IfCheckBox0.Value.....行。

我不确定我做错了什么,而且我不是普通的 VBA 用户。

请帮忙。

4

1 回答 1

1

我认为您正在使用嵌入式复选框(ActiveX)。如果是这样,您需要指定复选框所在的工作表。您不能只说Checkbox0,因为您可以Checkbox0在多个工作表上。

另一件事是你不能检查,"False"因为它不是一个字符串,而是一个布尔值,所以你可以使用False,因为这是一个固有的 VBA 关键字。

这就是我认为您正在寻找的内容:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim b As Long
    If (Sheets("Sheet1").CheckBox1.Value = False) Then
        b = MsgBox("Are you sure that you want to submit?", vbYesNo)
    End If

    If b = vbNo Then Cancel = True
End Sub

编辑:

忘记提及切换"Sheet1"复选框所在的工作表名称。

于 2012-12-19T20:20:48.153 回答