Страницы: 1
RSS
Автосохранение копии книги в заданную папку перед закрытием
 
Здравствуйте!

Стоит задача обеспечить при закрытии автоматическое сохранение копии в формате .xlsx активной книги, имеющей формат .xlsm, в заданную папку.
При этом пользователь не должен видеть:
1) Диалоговое окно с предупреждением о сохранении книги в формате, не поддерживающем макросы.
2) Диалоговое окно с предупреждением о существовании книги с таким же именем в заданной папке.
Но пользователь должен видеть стандартное диалоговое окно с запросом сохранения изменений в текущей книге, так как с точки зрения пользователя это будет корректным.

Попробовал такой код
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayAlerts = False
ThisWorkbook.SaveAs "полное имя книги с адресом", FileFormat:=xlWorkbookDefault
Application.DisplayAlerts = True
'ThisWorkbook.Save
End Sub

Смог обеспечить все условия, кроме последнего, а именно не показывается стандартное диалоговое с запросом сохранения изменений в текущей книге. Соответственно при внесении изменений они сохраняются в копии книги, а в самой книге - нет. Если добавить ThisWorkbook.Save, то любые изменения будут сохраняться и в активной книге без предупреждения, даже если изменения некорректные или кнопка закрытия окна нажата случайно.

Подскажите, пожалуйста, как после сохранения копии снова вызвать это стандартное диалоговое окно сохранения изменений в текущей книге?
 
Код
ThisWorkbook.SaveCOPYAs "полное имя книги с адресом"
просто создаст КОПИЮ файла
это вместо вашего SaveAs
 
Но мне нужно не это. Мне не нужно бездумно создавать копию файла. Мне нужно, чтобы вышло диалоговое окно, как бывает при попытке закрыть Excel. Окно предлагает сохранить изменения в текущей книге с вариантами ответов: сохранить, не сохранять и отмена.
Еще раз повторяю, нельзя просто сохранить книгу при попытке ее закрыть. В этом случае пользователь не застрахован от сохранения книги с ошибочными изменениями без возможности их отмены!
Страницы: 1
Читают тему
Наверх