2016-07-27 80 views
-2

例如,我在我们的网络驱动器中保存了一个excel文件。在那个文件上,我想实现一个解决方案,可以在用户指定的时间内启用自动备份。如何在指定的时间创建VBA备份脚本

例如: File.xlsx

脚本将备份该文件的每个上午10:00,下午4:00和5:00 PM。这可能吗?

+0

直接在托管文件的机器上执行定时任务(将文件复制到某个地方)将比“希望”某人在给定文件时使用该文件更容易时间... –

+0

只是另一个建议,你可以在任务调度器中写一些批处理脚本。 –

回答

0

使用此子下面,只是添加自己的备份保存宏称为BackupFile

Sub SetSchedule() 

Application.OnTime TimeValue("5:00:00"), "BackupFile" 

Application.OnTime TimeValue("10:00:00"), "BackupFile" 

Application.OnTime TimeValue("16:00:00"), "BackupFile" 

Application.OnTime TimeValue("23:59:00"), "SetSchedule" 

End Sub 

而且从开门副称之为:

Sub Workbook_Open() 

    Call SetSchedule 

End Sub 
+0

如果我想创建一个备份副本,每个用户都会打开文件该怎么办?并附加日期和时间戳的备份文件名? – PeterS

+0

这与设置时间安排不同,但您只需从工作簿打开事件调用备份宏 – RGA

1

最好的方法是创建一个计划任务以运行将备份文件的批处理或脚本文件。

以下是计划任务的示例参数。

C:\ WINDOWS \ SYSTEM32 \ WScript.exe的C:\ Excel文件\ backup.vbs”

保存此脚本backup.vbs

的VBScript

Const FolderName = "C:\Excel Files\" 
Const FileName = "Data.xlsm" 
Dim fso, NewName, sb 

Set sb = CreateObject("System.Text.StringBuilder") 
sb.AppendFormat "{0:yyyy-MM-dd} {0,8:t}", CDate(Now) 

NewName = Replace(sb.ToString(), ":" ,".") & " - " & FileName 

Set fso = WScript.CreateObject("Scripting.Filesystemobject") 

fso.CopyFile FolderName & FileName, FolderName & NewName,True