2012-12-06 18 views
0

我有一个创建Excel文档的备份副本的宏。
如何使它在每次保存文档时自动运行?如何编写将以特定间隔将Excel文件保存到另一个文件的脚本?

下面是代码:

Sub BUandSave() 
    'Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) 
    'Saves the current file to a backup folder and the default folder 
    'Note that any backup is overwritten 
Application.DisplayAlerts = False 
ActiveWorkbook.SaveCopyAs Filename:="G:\1 Processing\Christine\" & _ 
ActiveWorkbook.Name 
ActiveWorkbook.save 
Application.DisplayAlerts = True 
End Sub 

我从网上得到这个代码,并具有零个技能VBA,请帮忙!

编辑:好的,谢谢你的回答和见解。现在我有另一个问题。如何制作备份副本以保存不同的名称。我想让它看起来像不要删除或不要编辑,这样编辑文件的人不会尝试编辑错误的文件。我如何将其添加到代码中?

回答

2

答案就在你发布的代码:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) 
'Saves the current file to a backup folder and the default folder 
'Note that any backup is overwritten 

Application.DisplayAlerts = False 
ActiveWorkbook.SaveCopyAs Filename:="G:\1 Processing\Christine\" & ActiveWorkbook.Name 
ActiveWorkbook.Save 
Application.DisplayAlerts = True 
End Sub 

将在ThisWorkbook模块上面的代码(按Alt + F11将让你进入VBA编辑器)。 Workbook_BeforeSave是一个工作簿事件。其中的代码在事件被触发时执行,在这种情况下,在工作簿被保存之前执行。 Excel中的事件相当酷,并且是代码剽窃者的强大工具:-) 您在问题中发布的代码现在不再需要了。

+0

这是真的......但如果你打算把它放在Workbook_BeforeSave事件中,你应该使用'ThisWorkbook'而不是'ActiveWorkbook',因为它更加明确。也没有必要使用'ActiveWorkbook.Save',因为只要子结束,工作簿就会保存,除非'Cancel'布尔值更新为false。 –

+0

呜!有效。非常感谢! – christine

+0

克里斯汀,耶!很高兴它的工作。请将答案标记为已接受。 http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work –

相关问题