为什么以下if语句在VBA中不起作用?

时间:2019-06-13 13:47:16

标签: excel vba

我正在Excel VBA的if子下实现一个双重BeforeSave语句,但是它不起作用。我的excel工作表中有一个复选框,当选中或取消选中它们时,它们分别在TRUE中输出FALSEF11。另外,如果我要在工作表中填写的所有单元格都已填充,则单元格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语句为true,第二个If为空白,excel将不让我保存,但是实际输出是无论如何我都可以保存。另外,如果第一个If为False而不考虑第二个if输出,它应该让我保存。

1 个答案:

答案 0 :(得分:0)

我看到两个可能的原因:

  • 您指的是两个不同的工作表(Sheet1和Sheet2),对吗?
  • 您可能不想使用Value = ""工作表功能。