Namen in Excel per VBA vergeben: So funktioniert's
Schritt-für-Schritt-Anleitung
Um in Excel Bereichsnamen per VBA zu vergeben, kannst du den folgenden einfachen Code verwenden. Dieser Code zeigt, wie du den Namen "MieterNamen" für einen bestimmten Bereich in der Tabelle "Stammdaten" definierst.
Sub NamenVergaben()
Dim lngVonZeile As Long
Dim lngBisZeile As Long
lngVonZeile = 3
lngBisZeile = Worksheets("Stammdaten").Range("C1048576").End(xlUp).Row
ActiveWorkbook.Names.Add Name:="MieterNamen", RefersTo:="=Stammdaten!$C$" & lngVonZeile & ":$C$" & lngBisZeile
End Sub
Führe diese Schritte aus:
- Öffne den Visual Basic for Applications (VBA) Editor (ALT + F11).
- Erstelle ein neues Modul.
- Füge den Code in das Modul ein.
- Schließe den Editor und führe das Makro aus.
Häufige Fehler und Lösungen
Ein häufiger Fehler beim Vergeben von Namen in Excel ist das Vergessen eines Dollarzeichens $
. Wenn du das Dollarzeichen nicht korrekt verwendest, kann Excel den Bereich nicht richtig interpretieren.
Fehlerbehebung: Achte darauf, dass du die Referenz richtig schreibst:
ActiveWorkbook.Names.Add Name:="MieterNamen", RefersTo:="=Stammdaten!$C$" & lngVonZeile & ":$C$" & lngBisZeile
Wenn du versuchst, den Namen über die Datenüberprüfung zuzuordnen, stelle sicher, dass der Name korrekt erstellt wurde und keine Konflikte mit anderen Namen bestehen.
Alternative Methoden
Es gibt verschiedene Möglichkeiten, um Excel Bereichsnamen zu vergeben. Eine Alternative ist die Verwendung der Range
-Objekte:
Sheets("Stammdaten").Range(Cells(lngVonZeile, 3), Cells(lngBisZeile, 3)).Name = "MieterNamen"
Eine weitere Möglichkeit ist die Verwendung der Funktion Bereich.Verschieben
, um den Namen dynamisch zu erstellen:
ActiveWorkbook.Names.Add Name:="MieterNamen", RefersTo:="=BEREICH.VERSCHIEBEN($C$3;;;ANZAHL2($C$3:$C$1048576);)"
Praktische Beispiele
Hier sind einige praktische Beispiele, wie du Namen in Excel mit VBA vergeben kannst:
- Statischer Bereichsname:
ActiveWorkbook.Names.Add Name:="MieterNamen", RefersTo:="=Stammdaten!$C$3:$C$10"
- Dynamischer Bereichsname:
Dim Bereich As Range
With Worksheets("Stammdaten")
Set Bereich = .Range("C3", .Range("C" & .Rows.Count).End(xlUp))
End With
ActiveWorkbook.Names.Add "MieterNamen", "=Stammdaten!" & Bereich.Address(1, 1, xlR1C1)
Diese Beispiele zeigen dir, wie du sowohl statische als auch dynamische Bereichsnamen in Excel vergeben kannst.
Tipps für Profis
-
Nutze On Error Resume Next
, um Fehler beim Löschen bestehender Namen zu vermeiden. Dies kann hilfreich sein, wenn du sicherstellen möchtest, dass der Name immer neu vergeben wird.
-
Arbeite mit RefersTo
und vba refersto
, um komplexere Bezüge zu erstellen, die sich dynamisch anpassen.
-
Überprüfe regelmäßig deine vergebenen Namen, um sicherzustellen, dass keine Konflikte oder unnötigen Namen in deiner Arbeitsmappe existieren.
FAQ: Häufige Fragen
1. Wie kann ich einen bestehenden Namen in Excel löschen?
Du kannst einen bestehenden Namen mit folgendem Code löschen:
ActiveWorkbook.Names("MieterNamen").Delete
2. Warum wird mein Bereichsname nicht richtig angezeigt?
Überprüfe deine Formel auf korrekte Syntax und stelle sicher, dass alle Dollarzeichen $
an den richtigen Stellen gesetzt sind. Ein fehlendes Dollarzeichen kann dazu führen, dass Excel den Bereich falsch interpretiert.