
Это код, который я использовал. Диалоговое окно появляется только тогда, когда я запускаю его в конструкторе. Когда я закрываю конструктор и запускаю макрос, он только сохраняет рабочую книгу, но я хочу, чтобы диалоговое окно появлялось каждый раз, когда я запускаю этот макрос. Любая помощь/предложения, пожалуйста
Sub SaveAs()
Dim IntialName As String
Dim sFileSaveName As Variant
IntialName = "Sample Output"
sFileSaveName = Application.GetSaveAsFilename(InitialFileName:=InitialName, fileFilter:="Excel Files (*.xlsm), *.xlsm")
If sFileSaveName <> False Then
ActiveWorkbook.SaveAs sFileSaveName
End If
End Sub
решение1
Вашему Кодексу необходимо внести несколько исправлений:
- Поскольку используемое вами имя подпрограммы конфликтует с одним из резервных слов (командой)Сохранить как, поэтому Excel возвращает эту ошибку!
- Вам нужно удалить это из командной строки,
InitialFileName:=
Причина:Вы пытаетесь сохранить файл с указанным именем, IntialName = "Sample Output"
.
- Последнее — опечатка
InitialName
.
Предлагаемые исправления:
Переименуйте подпрограмму, например,СохранитьМойФайлКакили любой другой, кромеСохранить как.
Замените эту строку,
sFileSaveName = Application.GetSaveAsFilename(InitialFileName:=InitialName, fileFilter:="Excel Files (*.xlsm), *.xlsm")
с этим,
sFileSaveName = Application.GetSaveAsFilename(IntialName, fileFilter:="Excel Files (*.xlsm), *.xlsm")
- Вы получаете Propmt.
И это должен быть полный код для использования.
Sub SaveMyFileAs() Dim IntialName As String Dim sFileSaveName As Variant IntialName = "Sample Output" sFileSaveName = Application.GetSaveAsFilename(IntialName, fileFilter:="Excel Files (*.xlsm), *.xlsm") If sFileSaveName <> False Then ActiveWorkbook.SaveAs sFileSaveName End If End Sub
Примечание.Этот код можно использовать как,Workbook_BeforeCloseсобытие также.