Tabellenname ermitteln in Excel VBA
Schritt-für-Schritt-Anleitung
Um den Tabellenname in Excel VBA zu ermitteln, kannst du folgende Schritte befolgen:
-
Öffne die Visual Basic for Applications (VBA) Entwicklungsumgebung:
- Drücke
ALT + F11
in Excel.
-
Füge ein neues Modul hinzu:
- Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" und wähle
Einfügen > Modul
.
-
Füge den folgenden VBA-Code ein:
Option Explicit
Sub TabellennamenAuslesen()
Dim sh As Worksheet
For Each sh In Worksheets
MsgBox "VBA: " & sh.CodeName & " - Normal: " & sh.Name
Next
End Sub
-
Führe das Makro aus:
- Drücke
F5
oder gehe zu Run > Run Sub/UserForm
.
Mit diesem Code kannst du die VBA-Namen und die normalen Namen der Arbeitsblätter auslesen, was dir bei der Verwendung von excel vba tabellennamen auslesen
hilft.
Häufige Fehler und Lösungen
Alternative Methoden
Du kannst auch eine Funktion verwenden, um den Tabellennamen anhand des Codenamens zu ermitteln:
Function RegisterName_Wenn_CodeName_Bekannt(CodeName_als_String As String, Optional Datei As Workbook) As String
Dim i As Long
If Datei Is Nothing Then Set Datei = ActiveWorkbook
For i = 1 To Datei.Sheets.Count
If Datei.Sheets(i).CodeName = CodeName_als_String Then
RegisterName_Wenn_CodeName_Bekannt = Datei.Sheets(i).Name
Exit Function
End If
Next
End Function
Diese Funktion ermöglicht es dir, den Namen einer Tabelle zu ermitteln, ohne die Arbeitsblätter manuell durchzugehen.
Praktische Beispiele
Angenommen, du hast ein Arbeitsblatt mit dem Codename "Tabelle1" und möchtest dessen Namen auslesen:
Sub BeispielNamenAuslesen()
Dim tblName As String
tblName = RegisterName_Wenn_CodeName_Bekannt("Tabelle1")
MsgBox "Der Tabellenname ist: " & tblName
End Sub
Dieser Code zeigt dir den Namen der Tabelle an, die dem Codename "Tabelle1" zugeordnet ist.
Tipps für Profis
-
Nutze Debug.Print
, um Ergebnisse in das Direktfenster auszugeben, anstatt sie in MsgBox
anzuzeigen. So kannst du mehrere Ergebnisse gleichzeitig überprüfen.
-
Dokumentiere deine Codenamen in einer separaten Tabelle, um die Übersichtlichkeit bei großen Projekten zu verbessern.
-
Verwende Option Explicit
am Anfang deiner Module, um sicherzustellen, dass alle Variablen deklariert sind. Das hilft, Fehler zu vermeiden.
FAQ: Häufige Fragen
1. Wie kann ich alle Tabellennamen in einem Array speichern?
Du kannst den folgenden Code verwenden:
Sub NamenInArray()
Dim shA() As String
Dim sh As Worksheet
Dim i As Long
ReDim shA(Sheets.Count - 1)
i = 0
For Each sh In Worksheets
shA(i) = sh.Name
i = i + 1
Next
End Sub
2. Kann ich den Namen eines Arbeitsblatts direkt über den Codename abrufen?
Ja, aber du musst sicherstellen, dass du den richtigen Codename verwendest. Der Codename ist kein String, sondern ein Objekt, daher ist der Zugriff über den CodeName notwendig.
3. Welche Excel-Version benötige ich für diese VBA-Funktionen?
Die oben genannten VBA-Codes funktionieren in allen aktuellen Excel-Versionen, die die VBA-Programmierung unterstützen.