Dialogfeld wird nicht angezeigt, wenn ich ein Makro ausführe, um ein Dokument zu speichern

Dialogfeld wird nicht angezeigt, wenn ich ein Makro ausführe, um ein Dokument zu speichern

Dies ist der Code, den ich verwendet habe. Das Dialogfeld wird nur angezeigt, wenn ich dies im Designer ausführe. Wenn ich den Designer schließe und das Makro ausführe, wird nur die Arbeitsmappe gespeichert, aber ich möchte, dass das Dialogfeld jedes Mal angezeigt wird, wenn ich dieses Makro ausführe. Bitte um Hilfe/Vorschläge

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

Antwort1

Ihr Code benötigt einige Korrekturen:

  1. Da der von Ihnen verwendete Subroutinenname mit einem der Reservewörter (Befehl) kollidiertSpeichern als, daher gibt Excel diesen Fehler zurück!

Bildbeschreibung hier eingeben

  1. Sie müssen dies aus der Befehlszeile entfernen.InitialFileName:=

Grund:Sie versuchen, die Datei mit dem angegebenen Namen zu speichern IntialName = "Sample Output".

  1. Das Letzte ist ein Tippfehler InitialName.

Korrekturvorschläge:

  • Benennen Sie die Subroutine um, zum Beispiel:DateiSpeichernUnteroder eine andere alsSpeichern als.

  • Ersetzen Sie diese Zeile,sFileSaveName = Application.GetSaveAsFilename(InitialFileName:=InitialName, fileFilter:="Excel Files (*.xlsm), *.xlsm")

mit diesem,

sFileSaveName = Application.GetSaveAsFilename(IntialName, fileFilter:="Excel Files (*.xlsm), *.xlsm")

  • Sie erhalten Prompt.

Bildbeschreibung hier eingeben

  • Und dies sollte der vollständige zu verwendende Code sein.

    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
    

AchtungDieser Code kann verwendet werden als:Arbeitsmappe_VorSchließenVeranstaltung auch.

verwandte Informationen