VBA-Codierungsmuster: Benannter Bereich

Selbst wenn die Referenzadresse von Range während der VBA-Codierung geändert wird, können Sie bei Verwendung von Named Range (benannter Bereich) verhindern, dass sich der Quellcode unabhängig von der Änderung der Referenzadresse ändert. Schauen wir uns das Folgende an.

1. Bereichsreferenz mit absoluter Adresse

Unter den vielen Methoden zum Referenzieren von Range in Excel VBA ist die am häufigsten verwendete Methode wie folgt.

Dim sVal As String
sVal = Range("B2").Value2
Debug.Print sVal

In Range(„B2“) repräsentiert „B2“ die absolute Zellenadresse auf dem Excel-Blatt. Wenn Sie eine Zeile oder Spalte hinzufügen, indem Sie die Form eines Blattes ändern, muss „B2“ in „B3“ oder „C2“ geändert werden. Wenn die absolute Zellenadresse nur an einer Stelle im VBA-Code steht, kann sie leicht geändert werden.

Wenn sich die Änderung des zu referenzierenden Bereichs nicht auf die Änderung des VBA-Codes auswirkt, weisen Sie dem Bereich einen Namen zu, sodass der VBA-Code auf den Namen und nicht auf die absolute Adresse der Zelle verweist, und wenn sich die referenzierte Stelle ändert, den Namen Sie können die in angegebene Zellenadresse ändern.

2. Verweisen auf einen Bereich nach Namen

2.1. Erstellen Sie einen benannten Bereich

Erstellen Sie zunächst einen Namen für den Bereich, indem Sie den folgenden Prozess ausführen. Formeln > Namensverwaltung > Neu… Lauf (Siehe folgende Abbildung)

그림1. 이름 생성
Abbildung 1. Namen erstellen

Legen Sie im Fenster „Neuer Name“ den Namen, den Bereich, die Beschreibung und das Referenzziel fest.

그림2. 이름 설정
Figur 2. Name einsetzen

Hier bedeutet „Bereich“ den Bereich, der auf den Namen verweist, und Sie können einen der beiden auswählen.

  • Blatt (z. B. Blatt1): kann nur namentlich im auf diesem Blatt geschriebenen VBA-Code referenziert werden
  • Arbeitsmappe: Vollständiges Blatt, Modul, Klasse usw. können namentlich referenziert werden

Als Referenz werden die im Blatt definierten Namen beim Kopieren des Blattes zusammenkopiert. Wenn Sie zu diesem Zeitpunkt in mehreren Blättern auf denselben Namen verweisen müssen, stellen Sie ihn auf „Blatt“ ein, und wenn Sie nicht auf denselben Namen verweisen müssen, stellen Sie ihn auf „Arbeitsmappe“ ein. Sie können das Ergebnis wie folgt überprüfen.

그림3. 이름 생성 결과
Figur 3. Ergebnis der Namensbildung

Wenn Sie die Zelle auswählen, in der der Name definiert ist, wird der Name im Namensfeld angezeigt.

그림4. 이름이 부여된 범위 선택시 해당 이름 표시
Figur 4. Zeigen Sie den Namen an, wenn Sie einen benannten Bereich auswählen

Wenn Sie eine Zelle auswählen, deren Name nicht definiert ist, wird die absolute Adresse der Zelle im Namensfeld angezeigt.

그림5. 이름이 부여되지 않은 범위 선택시 범위 절대주소 표시
Abbildung 5. Bei Auswahl eines unbenannten Bereichs wird die absolute Adresse des Bereichs angezeigt.

2.2. Schreiben Sie den Namensreferenzcode

Nachdem Sie den Namen definiert haben, schreiben Sie VBA-Code, der sich auf den definierten Namen bezieht. Ein einfaches Beispiel ist:

Dim sVal As String
sVal = Range("BaseRange").Value2
Debug.Print sVal

2.3. Vorteile der Verwendung von Namen

Wenn die Absolutadresse geändert wird, kann die mit dem entsprechenden Namen bezeichnete Absolutadresse geändert werden. Dies ist praktisch, da nicht der gesamte VBA-Quellcode gesucht und geändert werden muss.

Wenn eine Spalte oder Zeile hinzugefügt oder gelöscht wird, wird die absolute Adresse, auf die sich der Name bezieht, automatisch geändert. Wenn sich beispielsweise ein Name auf die Zelle „B2“ bezieht, wird durch Hinzufügen einer Zeile zwischen den Zeilen 1 und 2 automatisch „B3“ angezeigt.

Verbessert die Lesbarkeit beim Lesen von VBA-Code. Um herauszufinden, was „B2“ im Quellcode bedeutet, müssen Sie das Blatt öffnen und es sich ansehen, aber wenn Sie Namen wie „BaseRange“, „TableListBase“, „ColumnListBase“, „ValueListBase“ usw. verwenden, ist dies der Fall macht es viel einfacher

zusätzliche Information Verwenden Sie den Excel-Namensmanager (microsoft.com) kann gefunden werden in


Oben haben wir uns die Methode und die Vorteile der Verwendung eines Namens für einen Bereich angesehen. Ich hoffe, es hilft Ihnen bei der VBA-Codierung, und wenn Sie Fragen haben, hinterlassen Sie bitte einen Kommentar.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

de_DEDeutsch