Bereichsnamen in Excel mit VBA löschen
Schritt-für-Schritt-Anleitung
Um benannte Bereiche in Excel mit VBA zu löschen, kannst du die folgende Schritt-für-Schritt-Anleitung nutzen:
-
Öffne Excel und gehe zu dem Arbeitsblatt, in dem du die benannten Bereiche löschen möchtest.
-
Drücke ALT + F11
, um den VBA-Editor zu öffnen.
-
Füge ein neues Modul hinzu:
- Klicke auf
Einfügen
> Modul
.
-
Kopiere den folgenden VBA-Code in das Modul:
Sub alle_Loeschen()
Dim n As Name
For Each n In ActiveWorkbook.Names
n.Delete
Next
End Sub
-
Schließe den VBA-Editor und kehre zu Excel zurück.
-
Führe das Makro aus:
- Drücke
ALT + F8
, wähle alle_Loeschen
und klicke auf Ausführen
.
Jetzt sollten alle benannten Bereiche in deinem Arbeitsblatt gelöscht sein. Wenn du Probleme hast, dass die Namen nicht vollständig gelöscht werden, kannst du die erweiterte Methode im nächsten Abschnitt ausprobieren.
Häufige Fehler und Lösungen
-
Problem: Nach dem Ausführen des Makros sind die Namen im Selektor verschwunden, aber der Name ist noch bekannt.
- Lösung: Verwende das erweiterte Makro aus dem Beitrag von fcs, das sicherstellt, dass auch unsichtbare Namen gelöscht werden. Hier ist der Code:
Sub Datei_Namen_Loeschen()
On Error GoTo Fehler
Dim objName As Name
If ActiveWorkbook.Names.Count = 0 Then
MsgBox "In der aktiven Arbeitsmappe sind keine Namen vorhanden.", vbInformation + vbOKOnly, "Namen löschen"
Exit Sub
End If
If MsgBox("Alle Namen in aktiver Arbeitsmappe löschen?", vbQuestion + vbOKCancel, "Namen löschen") = vbCancel Then Exit Sub
For Each objName In ActiveWorkbook.Names
If LCase(Left(objName.Name, 6)) <> "_xlfn." Then
objName.Delete
End If
Next
Fehler:
MsgBox "Fehler beim Löschen des Namens: " & objName.Name
End Sub
-
Problem: Fehlermeldungen beim Löschen eines Namens.
- Lösung: Stelle sicher, dass du keine geschützten oder nicht löschbaren Namen versuchst zu löschen.
Alternative Methoden
Eine alternative Methode, um Excel benannte Bereiche zu löschen, ist die manuelle Methode:
- Gehe zu
Formeln
in der oberen Menüleiste.
- Klicke auf
Namensmanager
.
- Wähle den benannten Bereich aus, den du löschen möchtest.
- Klicke auf
Löschen
.
Diese Methode ist besonders nützlich, wenn du nur einen bestimmten Namen löschen möchtest.
Praktische Beispiele
Hier ist ein praktisches Beispiel, das zeigt, wie du sowohl das Löschen als auch das Anlegen von benannten Bereichen kombinieren kannst:
Sub TestAddDeleteAddNames()
ActiveSheet.Range("C3:K3").Name = "WerteYYY"
ActiveSheet.Range("C8:K8").Name = "WerteXXX"
ActiveWorkbook.Names.Add Name:="WerteZZZ", RefersTo:=ActiveSheet.Range("C5:M5")
Call alle_Loeschen
ActiveSheet.Range("C3:K3").Name = "WerteYYY"
ActiveSheet.Range("C8:K8").Name = "WerteXXX"
ActiveWorkbook.Names.Add Name:="WerteZZZ", RefersTo:=ActiveSheet.Range("C5:M5")
End Sub
In diesem Beispiel kannst du sehen, wie du einen benannten Bereich hinzufügst, alle benannten Bereiche löscht und dann die ursprünglichen Namen erneut hinzufügst.
Tipps für Profis
- Verwende die
On Error Resume Next
-Anweisung, um das Skript robuster zu gestalten, wenn du versuchst, nicht vorhandene Namen zu löschen.
- Backup deiner Arbeitsmappe: Bevor du Namen löschst, erstelle ein Backup der Arbeitsmappe, um versehentliches Löschen wichtiger Daten zu vermeiden.
- Automatisierung: Du kannst diese VBA-Skripte in eine Schaltfläche auf deinem Arbeitsblatt einfügen, um das Löschen von Namen noch einfacher zu machen.
FAQ: Häufige Fragen
1. Wie kann ich nur bestimmte benannte Bereiche löschen?
Du kannst das VBA-Skript anpassen, um nur bestimmte Namen zu löschen, indem du eine Bedingung in der Schleife hinzufügst.
2. Was mache ich, wenn das Makro nicht ausgeführt wird?
Stelle sicher, dass Makros in deinen Excel-Einstellungen aktiviert sind und dass du das richtige Modul ausgewählt hast.