Как включить диалоговое окно «Сохранить как» в VBA, когда пользователь нажимает «X», чтобы закрыть файл? - PullRequest
0 голосов
/ 10 февраля 2020

Я делаю шаблон Excel для пользователей, чтобы заполнить информацию и отправить ее обратно. Некоторые пользователи обладают очень низкими техническими навыками, и файл использует макросы и, следовательно, должен быть сохранен как книга с поддержкой макросов. Вместо того, чтобы пытаться объяснить, как сохранить его как таковой, я обнаружил макрос, написанный кем-то другим, который изменяет тип файла по умолчанию на книгу с поддержкой макросов при включении диалогового окна «Сохранить как». Он отлично работает, но когда пользователь нажимает кнопку «X» в правом верхнем углу, чтобы закрыть документ без сохранения, макрос не запускается, и по умолчанию все равно сохраняется как обычная рабочая книга. (Я знаю, что это ужасная практика - сохранять файл таким образом, но я подозреваю, что это часто случается среди моих пользователей. Один человек, с которым я работал, сказал мне, что он всегда сохраняет свои файлы таким образом!)

Во всяком случае, макрос, который у меня в данный момент запущен, таков:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'Updateby Extendoffice 20161222
Dim xFileName As String
If SaveAsUI <> False Then
    Cancel = True
    xFileName = Application.GetSaveAsFilename(, "Excel Macro-Enabled Workbook (*.xlsm), *.xlsm", , "Save As xlsm file")
    If xFileName <> "False" Then
      Application.EnableEvents = False
      ActiveWorkbook.SaveAs Filename:=xFileName, FileFormat:=xlOpenXMLWorkbookMacroEnabled
      Application.EnableEvents = True
    Else
      Cancel = True
      Exit Sub
    End If
End If
End Sub

Если кто-нибудь знает, как я могу изменить это, или другой макрос для запуска, который будет задействован, если нажать «X», я был бы признателен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...