excel-vba
Benannte Bereiche
Suche…
Einführung
Definieren Sie einen benannten Bereich
Mit benannten Bereichen können Sie die Bedeutung des Zellinhalts beschreiben und diesen definierten Namen anstelle einer tatsächlichen Zelladresse verwenden.
Zum Beispiel kann formula =A5*B5
durch =Width*Height
, um das Verständnis der Formel zu erleichtern.
Um einen neuen benannten Bereich zu definieren, wählen Sie die zu benennenden Zellen oder Zellen aus, und geben Sie den neuen Namen in das Namensfeld neben der Formelleiste ein.
Hinweis: Benannte Bereiche sind standardmäßig auf den globalen Bereich eingestellt. Dies bedeutet, dass von überall in der Arbeitsmappe darauf zugegriffen werden kann. Ältere Versionen von Excel lassen doppelte Namen zu. Daher muss vermieden werden, dass doppelte Namen des globalen Gültigkeitsbereichs verwendet werden, da sonst die Ergebnisse unvorhersehbar sind. Verwenden Sie den Namensmanager auf der Registerkarte Formeln, um den Bereich zu ändern.
Benannte Bereiche in VBA verwenden
Erstellen Sie einen neuen benannten Bereich mit dem Namen 'MyRange', der Zelle A1
zugewiesen ist
ThisWorkbook.Names.Add Name:="MyRange", _
RefersTo:=Worksheets("Sheet1").Range("A1")
Definierten benannten Bereich nach Namen löschen
ThisWorkbook.Names("MyRange").Delete
Zugriff auf benannten Bereich über den Namen
Dim rng As Range
Set rng = ThisWorkbook.Worksheets("Sheet1").Range("MyRange")
Call MsgBox("Width = " & rng.Value)
Greifen Sie mit einer Verknüpfung auf einen benannten Bereich zu
Wie auf alle anderen Bereiche kann auf benannte Bereiche direkt mit einer Kurzbefehlsnotation zugegriffen werden, für die kein Range
Objekt erstellt werden muss. Die drei Zeilen des obigen Codeausschnitts können durch eine einzige Zeile ersetzt werden:
Call MsgBox("Width = " & [MyRange])
Hinweis: Die Standardeigenschaft für einen Bereich ist der Wert.
[MyRange]
[MyRange].Value
Sie können auch Methoden für den Bereich aufrufen. Folgendes wählt MyRange
:
[MyRange].Select
Hinweis: Eine Einschränkung ist, dass die Kurzbefehlsnotation nicht mit Wörtern funktioniert, die an anderer Stelle in der VBA-Bibliothek verwendet werden. Ein Bereich mit dem Namen
Width
wäre beispielsweise nicht als[Width]
ThisWorkbook.Worksheets("Sheet1").Range("Width")
, würde jedoch wie erwartet funktionieren, wenn der Zugriff überThisWorkbook.Worksheets("Sheet1").Range("Width")
Verwalten Sie benannte Bereiche mit dem Namensmanager
Registerkarte "Formeln"> Gruppe "Definierte Namen"> Schaltfläche "Namensmanager"
Mit dem benannten Manager können Sie:
- Namen erstellen oder ändern
- Zellreferenz erstellen oder ändern
- Bereich erstellen oder ändern
- Vorhandenen benannten Bereich löschen
Named Manager bietet eine schnelle Suche nach defekten Links.
Benannte Range Arrays
Beispielblatt
Code
Sub Example()
Dim wks As Worksheet
Set wks = ThisWorkbook.Worksheets("Sheet1")
Dim units As Range
Set units = ThisWorkbook.Names("Units").RefersToRange
Worksheets("Sheet1").Range("Year_Max").Value = WorksheetFunction.Max(units)
Worksheets("Sheet1").Range("Year_Min").Value = WorksheetFunction.Min(units)
End Sub
Ergebnis