想要VBA编程达到以下目的: excel文件簿关闭确认保存及备份文件

想要VBA编程达到以下目的: excel文件簿关闭时, 如果文件有修改,则
1、弹出对话框,询问是否保存、,跟EXCEL传统的对话框一样;
2、如果选择的是保存, 如果逢周二、周五则另存为一个备份文件。如果选择的是不保存,则不另存文件。
逢周二、周五另存的代码我已经有了,
Private Sub Workbook_BeforeClose(Cancel As Boolean)

If Weekday(Now()) = 3 Or Weekday(Now()) = 6 Then

path1 = "D:\1111\" '备份文件夹路径
filename1 = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 4) & Format(Now, "yyyymmdd") & ".xls"
filename2 = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 4) & Format(Now - 14, "yyyymmdd") & ".xls"

Set fso = CreateObject("Scripting.FileSystemObject")

If fso.FileExists(path1 & filename1) Then '判断备份文件是否存在
Kill path1 & filename1 '存在的话,删除原来备份文件
ThisWorkbook.SaveAs path1 & filename1 '保存新的文件备份
Else
ThisWorkbook.SaveAs path1 & filename1 '不存在直接保存备份
End If

If fso.FileExists(path1 & filename2) Then '判断备份文件是否存在
Kill path1 & filename2
Else: Exit Sub
End If
Else: Exit Sub
End If

End Sub

第1个回答  2011-09-05
ThisWorkBook有一个Workbook_BeforeSave事件,只要将代码写在那个事件上就可以达到你的要求了。
第2个回答  2011-08-28
在Excel中点击“文件”菜单,选择“保存”命令,在打开的“保存”对话框中,按下右上角的“工具”,点选“常规选项”,出现“保存选项”对话框后,勾选“生成备份文件”选项,按下“确定”。
现在保存一下文档,Excel就会自动给这个文件创建一份备份文件,备份文件的文件名为原文件名后加上“的备份”字样,如“Book1的备份.xlk”,而且图标也不相同,相信很容易分别出哪个是备份文件。
追问

这样备份文件始终只有一个!

第3个回答  2011-08-29
呵呵,来学习下
第4个回答  2011-09-13
把上面的代码放到BeforeSave里就可以了。

相关了解……

你可能感兴趣的内容

大家正在搜

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网