В Excel 2007 в поле «Сохранить как» есть опция «Создать резервную копию», которая просто создает резервную копию файла при каждом его сохранении. К сожалению, он создает резервную копию файла в том же каталоге, что и оригинал.
Есть ли простой способ изменить этот каталог на другой диск / папку? Я перепутал с макросами, чтобы сделать это, придумав:

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

Это создает резервную копию файла нормально с первого раза, однако, если это попытаться еще раз, я получаю:
Ошибка во время выполнения «1004»;
Microsoft Office Excel не может получить доступ к файлу 'T:\TEC_SERV\ Папка файла резервной копии - НЕ УДАЛЯТЬ \ Test Macro Sheet.xlsm. Есть несколько возможных причин:
Имя файла или путь не существует
Файл используется другой программой
Книга, которую вы пытаетесь сохранить, имеет то же имя, что и ...

Я знаю, что путь правильный, я также знаю, что файл больше нигде не открыт. Имя книги совпадает с именем, которое я пытаюсь сохранить, но оно должно быть просто перезаписано.

Я разместил вопрос о кодировании в Stack Overflow, но подумал, есть ли более простой способ сделать это.

Любая помощь приветствуется. Джо

2 ответа2

1

Книга, которую вы пытаетесь сохранить, имеет то же имя, что и ...

Я предполагаю, что это заканчивается «как рабочая книга, которая уже открыта». Я не знаю, почему это требование, но Excel не будет касаться двух таблиц с одинаковым именем файла. Вы можете попробовать & Workbook.Name & ".bak" в вашем коде.

Хотя вы должны заметить, что вы, вероятно, делаете это неправильно. То, что вы пытаетесь сделать, называется "контроль версий", и вам следует изучить теневые копии и репозиторий исходного кода (даже если эта таблица Excel не является исходным кодом, вы все равно можете создать версию файла). Это, скорее всего, "Право на поступление (ТМ)"

0

Хорошо, так что, похоже, нет простого способа сделать это. В Excel нет функции, позволяющей сохранять резервные копии в другой папке. Требуется довольно простой макрос Visual Basic - похожий на тот, что описан выше. Я принял во внимание идеи Таспеотиса и поэтому одобрил его ответ. Я не дал правильный ответ, так как он не отвечает на вопрос. Я ценю время, данное.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .