Q:在使用Excel时,如果对工作表进行了修改但没有保存,在关闭该工作簿时就会出现下所示的信息提示框。能够在任何情况下关闭工作簿时避免出现这个提示框吗?
Q:在使用Excel时,如果对工作表进行了修改但没有保存,在关闭该工作簿时就会出现下所示的信息提示框。能够在任何情况下关闭工作簿时避免出现这个提示框吗?
A:我们知道,在VBA中,可以使用 Close方法关闭工作簿。例如,下面的语句关闭当前工作簿:
ThisWorkbook.Close
然而,如果在上次保存后又对工作簿进行了修改,那么就会弹出上所示的对话框。
下面介绍的4种方法,可以避免在关闭工作簿时出现所示的对话框。
方法1:在关闭工作簿之前先进行保存操作
在Workbook_BeforeClose事件中,输入下面的代码:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Save
ThisWorkbook.Close
End Sub
方法2:设置Close方法的参数值
如下面的代码所示:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Close SaveChanges:=True
End Sub
此时,在关闭工作簿的同时也会保存对其所做的修改。
当然,如果将参数SaveChanges的值设置为False,在关闭工作簿时不会出现消息框但同时在上次保存工作簿之后所做的修改也会丢失。
方法3:屏蔽掉警告消息框
将DisplayAlerts属性设置为False,屏蔽掉Excel弹出的警告消息。代码如下:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayAlerts = False
ThisWorkbook.Close
End Sub
注意,这种情形下,你在上次保存工作簿之后,对该工作簿做的任何修改都不会保存。
方法4:设置Saved属性
如下面的代码所示:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Saved = True
ThisWorkbook.Close
End Sub
将工作簿的Saved属性设置为True,告诉工作簿不需要保存。注意,此时你在上次保存工作簿后对该工作簿进行的修改不会被保存。
小结
上面介绍的方法都可以避免Excel信息框的出现,但使用后面两种方法时要慎重,特别是你要保存对工作簿所做的修改时,以防重要信息没有保存。