在保存工作簿之前,发生Workbook_BeforeSave事件。其语法为:
Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel AsBoolean)
说明:
参数SaveAsUI为布尔值,如果设置为True,将打开“另存为”对话框。
参数Cancel为布尔值,当该事件发生时为False。如果将该参数设置为True,则不会保存工作簿。
示例1:让用户决定是否保存工作簿
下面的代码在保存工作簿前,给出提示信息,让用户决定是否保存工作簿。
Private SubWorkbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim str
str = MsgBox('希望保存工作簿吗?', vbYesNo)
If str = vbNo Then Cancel = True
End Sub
在保存工作簿时,弹出如图1所示的消息框,供用户选择是否保存该工作簿。
图1
示例2:限定用户必须在指定的单元格中输入数据
在工作簿保存前,检查指定的单元格中是否包含数据。如果这些单元格中没有全部输入数据,那么不会保存该工作簿。也就是说,关闭该工作簿时,不会保存对该工作簿所做的修改。
Private SubWorkbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If WorksheetFunction.CountA(Worksheets('Sheet1'). _
Range('A1,A3,C2,D1')) < 4Then
MsgBox '不能保存本工作簿!!!' & vbCrLf & _
'因为单元格A1,A3,C2,D1没有输入数据!'
Cancel = True
End If
End Sub
将工作表Sheet1中的单元格D1留空,单击“保存”按钮,会弹出如图2所示的消息框。只有当工作表Sheet1中的单元格A1、A3、C2、D1都输入有数据时,才能够正常保存该工作簿。
图2
联系客服