ThisWorkbook.Name ohne .xls
Schritt-für-Schritt-Anleitung
Um den Namen der aktuellen Arbeitsmappe ohne die Dateiendung .xls
in einem GetSaveAsFilename
-Dialogfeld zu verwenden, folge diesen Schritten:
-
Öffne den VBA-Editor in Excel mit ALT + F11
.
-
Füge ein neues Modul hinzu: Rechtsklick auf „VBAProject (DeineDatei.xls)“ > Einfügen > Modul.
-
Kopiere den folgenden Code in das Modul:
Sub MySaveAs()
Dim FileSaveName As String
FileSaveName = Application.GetSaveAsFilename( _
InitialFileName:=Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 4), _
FileFilter:="Microsoft Excel-Arbeitsmappe (*.xls), *.xls", _
Title:="Dateiname für die Ausschreibung")
If FileSaveName <> "False" Then
ActiveWorkbook.SaveAs FileSaveName
End If
End Sub
-
Führe das Makro aus, um den Dialog zu öffnen.
Häufige Fehler und Lösungen
Alternative Methoden
Wenn du die Endung .xls
nicht manuell entfernen möchtest, kannst du auch die Replace
-Funktion verwenden:
Sub AlternativeSaveAs()
Dim FileSaveName As String
FileSaveName = Application.GetSaveAsFilename( _
InitialFileName:=Replace(ThisWorkbook.Name, ".xls", ""), _
FileFilter:="Microsoft Excel-Arbeitsmappe (*.xls), *.xls", _
Title:="Dateiname für die Ausschreibung")
If FileSaveName <> "False" Then
ActiveWorkbook.SaveAs FileSaveName
End If
End Sub
Praktische Beispiele
Hier sind einige praktische Beispiele, wie du ThisWorkbook.Name
in verschiedenen Kontexten verwenden kannst:
-
Einfaches Speichern:
Sub SaveWorkbook()
Dim fileName As String
fileName = Application.GetSaveAsFilename( _
InitialFileName:=ThisWorkbook.Name, _
FileFilter:="Excel-Dateien (*.xls), *.xls")
If fileName <> "False" Then
ActiveWorkbook.SaveAs fileName
End If
End Sub
-
Mit zusätzlichem Text:
Sub SaveWithAdditionalText()
Dim additionalText As String
additionalText = "Export"
Dim fileName As String
fileName = Application.GetSaveAsFilename( _
InitialFileName:=Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 4) & " " & additionalText, _
FileFilter:="Excel-Dateien (*.xls), *.xls")
If fileName <> "False" Then
ActiveWorkbook.SaveAs fileName
End If
End Sub
Tipps für Profis
- Nutze die
On Error Resume Next
-Anweisung, um Fehler im Code elegant zu handhaben, besonders wenn du mit Dateispeicheroperationen arbeitest.
- Experimentiere mit der
Debug.Print
-Anweisung, um den aktuellen Wert von Variablen zu überprüfen, bevor du kritische Operationen durchführst.
- Vergewissere dich, dass du immer die richtige Excel-Version verwendest, um Kompatibilitätsprobleme zu vermeiden.
FAQ: Häufige Fragen
1. Wie kann ich den Namen der aktiven Arbeitsmappe ohne .xls erhalten?
Verwende ActiveWorkbook.Name
anstelle von ThisWorkbook.Name
, wenn du den Namen der aktuell aktiven Arbeitsmappe benötigst.
2. Was muss ich beachten, wenn ich mit verschiedenen Excel-Versionen arbeite?
Achte auf Unterschiede in der VBA-Implementierung und teste deinen Code in der spezifischen Excel-Version, die du verwendest.