VBA宏将excel文件保存到其他备份位置

Joe*_*lor 5 excel vba excel-2007 excel-vba

我正在尝试创建一个在关闭或保存时运行的宏,以将文件备份到其他位置.
目前我使用的宏是:

Private Sub Workbook_BeforeClose(Cancel As Boolean)  
'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:="T:\TEC_SERV\Backup file folder - DO NOT DELETE\" & _ 
    ActiveWorkbook.Name  
    ActiveWorkbook.Save  
    Application.DisplayAlerts = True  
End Sub  
Run Code Online (Sandbox Code Playgroud)

这会在第一次创建文件的备份,但是如果再次尝试,我会得到:

运行时错误'1004';
Microsoft Office Excel无法访问文件'T:\ TEC_SERV\Backup文件夹 - 请勿删除\测试宏Sheet.xlsm.有几个可能的原因:
文件名或路径不存在
该文件正由另一个程序
使用您尝试保存的工作簿与...的名称相同

我知道路径是正确的,我也知道该文件在其他任何地方都没有打开.该工作簿与我试图保存的工作簿具有相同的名称,但它应该覆盖.

任何帮助将非常感激.

Joe*_*lor 5

我将代码修改为:

Sub BUandSave2()
'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
Dim MyDate
MyDate = Date    ' MyDate contains the current system date.
Dim MyTime
MyTime = Time    ' Return current system time.
Dim TestStr As String
TestStr = Format(MyTime, "hh.mm.ss")
Dim Test1Str As String
Test1Str = Format(MyDate, "DD-MM-YYYY")

Application.DisplayAlerts = False
'
Application.Run ("SaveFile")
'
ActiveWorkbook.SaveCopyAs Filename:="T:\TEC_SERV\Backup Test\" & Test1Str & " " & TestStr & " " & ActiveWorkbook.Name
ActiveWorkbook.Save
Application.DisplayAlerts = True
End Sub
Run Code Online (Sandbox Code Playgroud)

它现在工作正常.大学网络上必须有一些东西阻止原件运行.我家里没问题.