0

我有一个创建 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 的技能为零,请帮忙!

编辑:好的,谢谢您的回答和洞察力。现在我还有另一个问题。如何使备份副本以不同的名称保存。我想让它像 DO NOT DELETE 或 DO NOT EDIT 这样的东西,这样编辑文件的人就不会偶然尝试编辑错误的文件。如何将其添加到代码中?

4

1 回答 1

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 中的事件非常酷,并且是代码吊索的强大工具 :-) 您在问题中发布的代码现在不再需要。

于 2012-12-06T17:41:19.483 回答