FAQ 0136: Wie ändere ich den Namen eines Excel-Arbeitsblattes?
von Thomas Bräutigam
Frage
Wie kann ich den Namen eines Arbeitsblattes in Excel ändern?
Beispiel
Das folgende Beispiel zeigt, wie man den Namen ändern kann. Der neue Name wird aus der Zelle A1 (oder Z1S1) ausgelesen, sobald diese Zelle geändert wird.
Der Quelltext stammt von Alexander Fross:
Option Explicit Private Sub Workbook_SheetChange( _ ByVal Sh As Object, _ ByVal Target As Range) ' Der Tabellenname ist mit der jeweiligen Zelle A1 der ' entsprechenden Tabelle verknüpft. Sobald die Zelle A1 geändert ' wird, ändert sich auch der Tabellenname. If Target.Address = Cells(1, 1).Address Then Call ChangeWksName(Sh, Left$(Target.Value, 31)) End If End Sub Private Sub ChangeWksName(Wks As Worksheet, Nme As String) Dim xi As Long 'Zähler ForNext ' Alle Zeichen die nicht verwendet werden dürfen aus String ' entfernen. Nme = Replace(Nme, ":", vbNullString) Nme = Replace(Nme, "\", vbNullString) Nme = Replace(Nme, "/", vbNullString) Nme = Replace(Nme, "?", vbNullString) Nme = Replace(Nme, "*", vbNullString) Nme = Replace(Nme, "[", vbNullString) Nme = Replace(Nme, "]", vbNullString) If Len(Nme) = 0 Then Exit Sub ' Arbeitsmappenschutz entfernen ThisWorkbook.Unprotect On Error Resume Next xi = 1 Wks.Name = Nme ' Überprüfen ob der Tabellenname bereits verwendet wird. Wenn ' dies der Fall ist, dem Tabellennamen eine Zahl (aufsteigend) ' anhängen, bis der Tabellenname nicht mehr doppelt vorhanden ist. ' Gebenfalls muss die Zeichenanzahl des Namens gekürzt werden, da ' dieser nicht mehr als 31 Zeichen beinhalten darf. Die ' Vorgehensweise ist die gleiche, wie die jeinige von Excel. Do Until Err.Number <> 1004 Err.Clear xi = xi + 1 Wks.Name = Left$(Nme, 28 - Len(xi)) & " (" & xi & ")" Loop On Error Goto 0 ' Arbeitsmappe schützen ThisWorkbook.Protect End Sub
Der Quelltext verwendet die Funktion Replace, welche erst ab Excel 2000 vorhanden ist. Geschwindigkeitsfanatiker und Besitzer älterer Excel-Versionen sollten sich daher folgendes anschauen:
FAQ 0049: Ersatz für einige Stringfunktionen
Ihre Meinung
Falls Sie Fragen zu dieser FAQ haben, Ihre Erfahrung mit anderen Nutzern austauschen möchten oder auf eine Ergänzung hinweisen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.