在保存工作簿之前,發(fā)生Workbook_BeforeSave事件。其語法為:
Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel AsBoolean)
說明:
參數(shù)SaveAsUI為布爾值,如果設(shè)置為True,將打開“另存為”對(duì)話框。
參數(shù)Cancel為布爾值,當(dāng)該事件發(fā)生時(shí)為False。如果將該參數(shù)設(shè)置為True,則不會(huì)保存工作簿。
示例1:讓用戶決定是否保存工作簿
下面的代碼在保存工作簿前,給出提示信息,讓用戶決定是否保存工作簿。
Private SubWorkbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim str
str = MsgBox('希望保存工作簿嗎?', vbYesNo)
If str = vbNo Then Cancel = True
End Sub
在保存工作簿時(shí),彈出如圖1所示的消息框,供用戶選擇是否保存該工作簿。
圖1
示例2:限定用戶必須在指定的單元格中輸入數(shù)據(jù)
在工作簿保存前,檢查指定的單元格中是否包含數(shù)據(jù)。如果這些單元格中沒有全部輸入數(shù)據(jù),那么不會(huì)保存該工作簿。也就是說,關(guān)閉該工作簿時(shí),不會(huì)保存對(duì)該工作簿所做的修改。
Private SubWorkbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If WorksheetFunction.CountA(Worksheets('Sheet1'). _
Range('A1,A3,C2,D1')) < 4Then
MsgBox '不能保存本工作簿!!!' & vbCrLf & _
'因?yàn)閱卧?/span>A1,A3,C2,D1沒有輸入數(shù)據(jù)!'
Cancel = True
End If
End Sub
將工作表Sheet1中的單元格D1留空,單擊“保存”按鈕,會(huì)彈出如圖2所示的消息框。只有當(dāng)工作表Sheet1中的單元格A1、A3、C2、D1都輸入有數(shù)據(jù)時(shí),才能夠正常保存該工作簿。
圖2
聯(lián)系客服