Wie erstelle ich einen benannten bereich mit vba?
Um einen benannten Bereich mit VBA zu erstellen, müssen Sie die Eigenschaft „Names“ weiterhin mit der Methode „Add“ verwenden. In der Add-Methode verfügen Sie über Argumente, um zu definieren, welchen Namen Sie dem Bereich geben möchten, und um die Adresse des Bereichs anzugeben (verwenden Sie unbedingt das Dollarzeichen mit der Adresse, um den Bereich einzufrieren).
Erstellen Sie mit VBA einen Namensbereich
- Definieren Sie die Arbeitsmappe, in der Sie den benannten Bereich erstellen möchten.
- Verwenden Sie die Eigenschaft „names“ und fügen Sie dann eine zusätzliche Methode hinzu.
- Geben Sie den Namen im Argument „Name“ an.
- Verweisen Sie mit dem Argument „ReferTo“ auf den Bereich.
Im obigen Beispiel haben Sie die aktive Arbeitsmappe. Anschließend legen Sie mithilfe der Eigenschaft „Names“ mit der Methode „Hinzufügen“ den Namen des Bereichs und am Ende die Adresse des Bereichs fest, den Sie verwenden möchten.
Wie ich bereits sagte, müssen Sie im Adressbereich das $-Zeichen verwenden, um die Adresse einzufrieren. Sie können ThisWorkbook auch verwenden, um auf die Arbeitsmappe zu verweisen, in der Sie den Code schreiben, oder Sie können mithilfe des Arbeitsmappenobjekts auf eine andere Arbeitsmappe verweisen.
VBA zum Erstellen eines benannten Bereichs aus der Auswahl
Sie können die Eigenschaft „selection“ auch verwenden, um aus der Auswahl einen benannten Bereich zu erstellen. Betrachten Sie den folgenden Code.
ActiveSheet.Names.Add Name:="myRangeName", RefersTo:=Selection
Und im folgenden Code haben Sie ein Meldungsfeld, in das Sie den Namen eingeben können, den Sie dem benannten Bereich geben möchten.
Sub vba_named_range() Dim iName As String iName = InputBox("Enter Name for the Selection.") ActiveSheet.Names.Add Name:=iName, RefersTo:=Selection End Sub
Größe eines benannten Bereichs mit VBA (Dynamic Named Range) ändern
Um die Größe eines benannten Bereichs zu ändern, der bereits im Arbeitsblatt vorhanden ist, müssen Sie die Eigenschaft „Größe ändern“ verwenden und VBA mitteilen, wie viele Zeilen und Spalten Sie aus dem aktuellen Bereich erweitern möchten. Betrachten Sie den folgenden Code, der den Bereich mit dem Namen „myRange“ erweitert, dessen Bereich zunächst Zelle A1 ist, dessen Größe jedoch auf Spalte M und Zeile 11 geändert wird.
Sub vba_named_range() Dim iRow As Long Dim iColumn As Long iRow = ActiveSheet.Range("A1").End(xlDown).Row iColumn = ActiveSheet.Range("A1").End(xlToRight).Column ActiveSheet.Range("myRange") _ .Resize(iRow, iColumn).Name = "myRange" End Sub
Ich habe dies in drei Teile unterteilt, um es Ihnen klar zu machen. Kommen wir nun zur Sache.
- Im ERSTEN Teil haben Sie Variablen deklariert, um die Zeilen und die Anzahl der Spalten zu speichern.
- Im ZWEITEN Teil haben Sie die Methode „END“ mit dem Bereich verwendet, um die letzte Zeile und Spalte abzurufen und sie für Variablen zu speichern.
- In Teil DREI haben Sie die Resize-Eigenschaft mit dem Bereich namens „myRange“ verwendet. Und danach die Zeilen- und Spaltennummer, die Sie in den Variablen haben.
Wenn Sie diesen Code ausführen, ändert er die Größe des alten Bereichs basierend auf Ihren Daten und macht daraus einen dynamischen benannten Bereich. Wann immer Sie es aktualisieren müssen, können Sie den Code ausführen und die Größe des vorhandenen benannten Bereichs ändern.