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.