【发布时间】:2019-06-14 04:39:10
【问题描述】:
我正在 Excel VBA 中的 BeforeSave Sub 下实现双 if 语句,但它不起作用。我的 Excel 工作表中有一个复选框,分别在选中或未选中时在 F11 中输出 TRUE 或 FALSE。另外,如果我要填写在表格中的所有单元格都已填满,则单元格 A1 将从“”变为“”。
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Sheet2.Range("F11").Value = "TRUE" Then
If Sheet1.Range("A1").Value = "" Then
MsgBox "Sheet requires input(s). All cells must be filled."
Cancel = True
End If
End If
End Sub
预期的输出是,如果第一个 If 语句为真而第二个 If 为空,excel 将不会让我保存,但实际输出是它让我无论如何都可以保存。此外,如果第一个 If 为 False,无论第二个 if 输出如何,它都应该让我保存。
【问题讨论】:
-
欢迎来到本站!查看tour 和how-to-ask page,了解更多关于提出可以吸引高质量答案的问题的信息。您可以edit your question 提供更多信息。
-
If Sheet2.Range("F11").Value Then -
您是否尝试过在第二个 if 语句 (
If Sheet1.Range("A1").Value = "" Then) 上设置断点来检查外部 if 语句是否计算结果为真? (代码在遇到断点时会暂停。因此,如果代码从未在第二个 if 语句的断点处暂停,那么第一个 if 语句总是失败。)