Диалоговое окно не отображается при запуске макроса для сохранения документа

Диалоговое окно не отображается при запуске макроса для сохранения документа

Это код, который я использовал. Диалоговое окно появляется только тогда, когда я запускаю его в конструкторе. Когда я закрываю конструктор и запускаю макрос, он только сохраняет рабочую книгу, но я хочу, чтобы диалоговое окно появлялось каждый раз, когда я запускаю этот макрос. Любая помощь/предложения, пожалуйста

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

Вашему Кодексу необходимо внести несколько исправлений:

  1. Поскольку используемое вами имя подпрограммы конфликтует с одним из резервных слов (командой)Сохранить как, поэтому Excel возвращает эту ошибку!

введите описание изображения здесь

  1. Вам нужно удалить это из командной строки,InitialFileName:=

Причина:Вы пытаетесь сохранить файл с указанным именем, IntialName = "Sample Output".

  1. Последнее — опечатка 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событие также.

Связанный контент