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)
Legen Sie im Fenster „Neuer Name“ den Namen, den Bereich, die Beschreibung und das Referenzziel fest.
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.
Wenn Sie die Zelle auswählen, in der der Name definiert ist, wird der Name im Namensfeld angezeigt.
Wenn Sie eine Zelle auswählen, deren Name nicht definiert ist, wird die absolute Adresse der Zelle im Namensfeld 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.