Я хотел создать небольшой макрос, который заставляет пользователя использовать диалог SaveAs в MS Excel 2010 («MS Office Professional Plus 2010» на случай, если это имеет значение) вместо того, чтобы просто сохранить файл под то же имя. Я сохранил эту процедуру под объект рабочей книги:xlDialogSaveAs делает аварийную ситуацию Excel
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Not SaveAsUI Then
msg = "Use the 'Save As' dialog to save a new version of the file"
Style = vbOKCancel
Query = MsgBox(msg, Style)
If Query = vbOK Then
Application.Dialogs(xlDialogSaveAs).Show
ElseIf Query = vbCancel Then
Cancel = True
End If
End If
End Sub
Это все работает хорошо: я нажимаю «Ctrl-S» и получить приглашение. Я нажимаю «ОК» и использую диалог SaveAs, чтобы сохранить файл под другим именем. Но как только я нажму кнопку «Сохранить» в диалоговом окне, Excel сработает.
Возможно, я использую команду xlDialogSaveAs неправильно, но я просто не могу понять, почему это не работает. В отладчике нет сообщений об ошибках. В книге нет другого кода VBA в другом месте. Я пытаюсь сохранить книгу как файл .xlsm (диалог SaveAs корректно по умолчанию).
Есть ли кто-нибудь, кто может мне помочь?
Я только попробовал (Excel 2013) и работает на меня. Какая версия Excel у вас есть? Какой тип файла вы сохраняете как? Вы пробовали разные имена файлов? У вас есть другой код в этой книге? –
Привет, Майкл, приятно знать, что, по крайней мере, мой подход не был полностью неправильным ...! Я использую Excel 2010. Может быть, но это было бы удивительно, потому что я нашел эту команду в нескольких старых записях форума. В диалоговом окне SaveAs по умолчанию используется значение «.xlsm», и я сохраняю это как таковое. Все, что я делаю, это изменение имени. Я пробовал разные имена, но безрезультатно. В книге нет другого кода. –
Превосходит крах, если вы просто используете SaveAs? Это крушение независимо от того, где вы пытаетесь сохранить его и какое имя вы ему даете? Сохраняет ли файл, а затем сбой или сбой, прежде чем он будет сохранен? –