當我運行巨集來儲存文件時,不會顯示對話框

當我運行巨集來儲存文件時,不會顯示對話框

這是我使用的程式碼。僅當我在設計器中運行此對話框時才會彈出該對話框。當我關閉設計器並運行巨集時,它僅保存工作簿,但我希望每次運行此巨集時都會彈出對話框。有任何幫助/建議請

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")

  • 你會得到提示。

在此輸入影像描述

  • 這應該是要使用的完整程式碼。

    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
    

注意該代碼可以用作,工作簿_關閉前事件也。

相關內容