ich habe in VBA die Tabellen von z.B. Tabelle1 auf Mgt_Summe umbenannt.
Wie kann ich diesen Namen abfragen?
Mein Versuch:
If ActiveSheet Is [Mgt_Summe] Then
x = 1
Else: x = 2
End If
funktioniert leider nicht.
Danke.
Matthias
ich habe in VBA die Tabellen von z.B. Tabelle1 auf Mgt_Summe umbenannt.
Wie kann ich diesen Namen abfragen?
Mein Versuch:
If ActiveSheet Is [Mgt_Summe] Then
x = 1
Else: x = 2
End If
funktioniert leider nicht.
Danke.
Matthias
If ActiveSheet.Name = "Mgt_Summe" Then
Gruss
Andreas
vielleicht habe ich mich nicht richtig ausgedrückt.
Man kann im Eigenschaftsfensten einmal die Option "(Name)" und einmal "Name" ändern. "Name" ist gleichbedeutend mit der angezeigten Bezeichnung im Reiter, währen "(Name)" der VBA-Name der Tabelle ist.
Den "Name" kann ich mit ActiveSheet.Name abfragen. Wie aber den "(Name)"?
Matthias
Gruss
Andreas
Danke.
Matthias
Um den Namen des aktiven Arbeitsblattes in Excel VBA abzufragen, kannst Du die Eigenschaft ActiveSheet.Name verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:
Öffne das VBA-Editor-Fenster in Excel (drücke ALT + F11).
Füge ein neues Modul hinzu (Rechtsklick auf "VBAProject" > "Einfügen" > "Modul").
Schreibe den folgenden Code in das Modul:
Sub GetActiveSheetName()
Dim sheetName As String
sheetName = ActiveSheet.Name
MsgBox "Der Name des aktiven Arbeitsblatts ist: " & sheetName
End Sub
Schließe den VBA-Editor und kehre zu Excel zurück.
Führe das Makro aus (drücke ALT + F8, wähle GetActiveSheetName und klicke auf "Ausführen").
Fehler: "Objektvariable oder With-Blockvariable nicht festgelegt."
Fehler: "Typen unverträglich."
ActiveSheet.Name gibt einen String zurück.Problem: Abfrage des "(Name)" des Arbeitsblatts.
ActiveSheet.CodeName, um den internen Namen des Arbeitsblatts zu erhalten.Eine alternative Methode, um den Namen des aktiven Arbeitsblatts abzufragen, ist die Verwendung der ThisWorkbook-Eigenschaft:
Sub GetActiveSheetNameAlternative()
Dim sheetName As String
sheetName = ThisWorkbook.ActiveSheet.Name
MsgBox "Der Name des aktiven Arbeitsblatts ist: " & sheetName
End Sub
Diese Methode ist besonders nützlich, wenn Du sicherstellen möchtest, dass Du auf das aktive Arbeitsblatt innerhalb eines bestimmten Arbeitsbuchs zugreifst.
Hier sind einige praktische Beispiele, wie Du den aktiven Arbeitsblattnamen weiterverwenden kannst:
Abfrage und Bedingung:
Sub CheckActiveSheetName()
If ActiveSheet.Name = "Mgt_Summe" Then
MsgBox "Das aktive Arbeitsblatt ist Mgt_Summe."
Else
MsgBox "Das aktive Arbeitsblatt ist nicht Mgt_Summe."
End If
End Sub
Verwendung im Code:
Sub RenameActiveSheet()
If ActiveSheet.Name = "AlteBezeichnung" Then
ActiveSheet.Name = "NeueBezeichnung"
MsgBox "Das Arbeitsblatt wurde umbenannt."
End If
End Sub
ActiveSheet.CodeName, um den Code-Namen des Arbeitsblattes zu nutzen, da dieser nicht verändert werden kann, wenn der Benutzer den Namen im Excel-Reiter ändert.Nutze Fehlerbehandlungsroutinen, um zu verhindern, dass dein Code aufgrund unerwarteter Bedingungen abbricht.
On Error Resume Next
Dim sheetName As String
sheetName = ActiveSheet.Name
If Err.Number <> 0 Then
MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
End If
On Error GoTo 0
1. Wie kann ich den Namen des aktiven Arbeitsblatts in einer Variablen speichern? Du kannst den Namen des aktiven Arbeitsblatts einfach mit folgendem Code speichern:
Dim sheetName As String
sheetName = ActiveSheet.Name
2. Wie kann ich den internen Namen eines Arbeitsblatts abfragen?
Verwende die Eigenschaft CodeName:
Dim internalName As String
internalName = ActiveSheet.CodeName
3. Was passiert, wenn ich versuche, den Namen eines nicht existierenden Arbeitsblatts abzufragen? Wenn das Arbeitsblatt nicht existiert, wird ein Laufzeitfehler ausgelöst. Stelle sicher, dass Du ein aktives Arbeitsblatt hast, bevor Du den Code ausführst.