2016-07-27 4 views
-2

Например, у меня есть файл excel, сохраненный на нашем сетевом диске. В этом файле я хочу реализовать решение, которое позволит автоматическое резервное копирование в течение времени, указанного пользователем.Как создать сценарий резервного копирования VBA в указанное время

Например: File.xlsx

Сценарий будет подпорка этот файл каждый 10:00 часов утра, 4:00 вечера и 5:00 утра. Это будет возможно?

+0

Выполнение заданной задачи (скопируйте файл где-нибудь) непосредственно на машине, на которой размещен файл, будет проще, чем «надеяться», что кто-то работает с этим файлом при заданном time ... –

+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 Files \ 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 
Смежные вопросы