VBA宏将excel文件保存到不同的备份位置
我正在尝试创建一个宏,它可以在关闭时或保存时运行以将文件备份到其他位置。
目前宏我用的是:VBA宏将excel文件保存到不同的备份位置
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-Time Error '1004';
Microsoft Office Excel cannot access the file 'T:\TEC_SERV\Backup file folder - DO NOT DELETE\Test Macro Sheet.xlsm. There are several possible reasons:
The file name or path does not exist
The file is being used by another program
The workbook you are trying to save has the same name as a...
我知道路径是正确的,我也知道该文件没有在其他地方打开。该工作簿与我试图保存的名称相同,但它应该只是覆盖。
任何帮助将不胜感激。
我修改了代码,以这样的:
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
现在工作得很好。大学网络上必须有一些东西阻止原始文件的运行。我在家里没有任何问题。
在Application.Run(“SaveFile”)中出现错误 – 2015-07-16 10:17:26
谢谢,我开始使用它! – Simon 2016-11-25 14:48:06
我试过你写的代码,我发现代码工作,但是当我打开备份文件时,我得到了同样的错误。
所以我认为你必须在出现错误时打开备份文件。
我写了一个代码,以帮助这个错误:
If ActiveWorkbook.Path = "D:\MOVIES\excel test\Backup" Then
Exit Sub
Else
Application.DisplayAlerts = False
ActiveWorkbook.SaveCopyAs Filename:="D:\MOVIES\excel test\Backup\" & _
ActiveWorkbook.Name
ActiveWorkbook.Save
Application.DisplayAlerts = True
我不觉得有什么不对的校园网络。
如果您不是满意的答复或有任何疑问,请发送电子邮件至我[email protected]
问候
Kishlay米什拉
我不能重现此问题(至少,不与Excel 2002)。在那里工作很好。你确定你没有打开你的备份文件吗?你是否知道当你打开你的备份文件时,它会尝试将自己备份到备份文件夹中? – 2010-05-14 11:13:48
是的,我意识到这一点,这就是关闭命令中的一个问题,这让我想到了保存命令。这将从备份中删除问题,因为它不会被保存。备份文件绝对不会打开。它有点困惑。 我最初也是从工具栏中的自定义按钮运行命令,但忘记点击它的人却遇到了问题。因此,关闭事件被替换。 – 2010-05-14 12:13:45