Workbook Name ohne Extension auslesen
Schritt-für-Schritt-Anleitung
Um den Namen des Arbeitsbuchs ohne die Dateiendung in Excel VBA auszulesen, kannst du folgende Schritte befolgen:
-
Öffne den Visual Basic for Applications (VBA) Editor in Excel (drücke ALT + F11
).
-
Füge ein neues Modul hinzu, indem du mit der rechten Maustaste auf "VBAProject (dein Arbeitsbuchname)" klickst und "Einfügen" > "Modul" auswählst.
-
Kopiere und füge den folgenden Code in das Modul ein:
Sub WorkbookNameWithoutExtension()
Dim strName As String
strName = ThisWorkbook.Name
MsgBox Left$(strName, InStrRev(strName, ".") - 1)
End Sub
-
Schließe den VBA-Editor und führe das Makro aus, um den Namen des Arbeitsbuchs ohne die Endung anzuzeigen.
Häufige Fehler und Lösungen
Alternative Methoden
Es gibt verschiedene Möglichkeiten, den Namen des Arbeitsbuchs ohne die Dateiendung auszulesen:
-
Verwendung von Split
:
MsgBox Split(ThisWorkbook.Name, ".")(0)
-
Verwendung von ActiveWorkbook
:
Wenn du den Namen des aktiven Arbeitsbuchs auslesen möchtest, kannst du ActiveWorkbook.Name
verwenden:
MsgBox Left$(ActiveWorkbook.Name, InStrRev(ActiveWorkbook.Name, ".") - 1)
Praktische Beispiele
Hier sind einige praktische Beispiele, um den Namen des Arbeitsbuchs ohne Extension zu erhalten:
-
Beispiel 1: Grundlegendes Auslesen des Arbeitsbuchnamens:
Sub GetWorkbookName()
Dim workbookName As String
workbookName = ThisWorkbook.Name
MsgBox "Der Name des Arbeitsbuchs ist: " & Left$(workbookName, InStrRev(workbookName, ".") - 1)
End Sub
-
Beispiel 2: Nutzung in einer Funktion:
Function GetWorkbookNameWithoutExtension() As String
GetWorkbookNameWithoutExtension = Left$(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, ".") - 1)
End Function
Tipps für Profis
- Nutze die Funktion
ThisWorkbook.Name
anstelle von ActiveWorkbook.Name
, um sicherzustellen, dass du den Namen des Arbeitsbuchs verwendest, in dem der Code ausgeführt wird.
- Wenn du den Namen in einer Variablen speichern möchtest, kannst du
Dim
verwenden, um den Typ der Variablen festzulegen, z.B. Dim strName As String
.
- Denke daran, dass VBA case-sensitive ist. Achte also auf die Schreibweise von
ThisWorkbook
und ActiveWorkbook
.
FAQ: Häufige Fragen
1. Wie kann ich den Namen eines anderen Arbeitsbuchs ohne Extension auslesen?
Du kannst das Arbeitsbuch mit Workbooks("DeinArbeitsbuch.xlsx").Name
ansprechen und dann die gleiche Methode wie oben anwenden, um die Dateiendung zu entfernen.
2. Funktioniert das auch in Excel 365?
Ja, der Code funktioniert in allen modernen Excel-Versionen, die VBA unterstützen, einschließlich Excel 365.
3. Was ist der Unterschied zwischen ThisWorkbook
und ActiveWorkbook
?
ThisWorkbook
bezieht sich auf das Arbeitsbuch, in dem der Code läuft, während ActiveWorkbook
das aktuell aktive Arbeitsbuch ist, was ein anderes sein kann.