VBA – Aktuelle Region
In this Article
In diesem Tutorial erklären wir Ihnen, wie Sie CurrentRegion in VBA verwenden können.
Die Eigenschaft CurrentRegion in VBA ist eine Möglichkeit, alle Zellen in einem Bereich, mit dem Sie arbeiten möchten, auszuwählen. Solange die Zellen innerhalb des Bereichs alle aufeinander folgen oder einander „berühren“, wählt die CurrentRegion jede Zelle in diesem Bereich aus.
CurrentRegion-Syntax
Die Syntax ist sehr einfach:
Range("E11").CurrentRegion.Select
hier geben Sie die Zelle an, deren aktuelle Region Sie auswählen möchten und verwenden dann die Eigenschaft CurrentRegion.Select, um den Zellenbereich auszuwählen.
Die aktuelle Region ermitteln
Betrachten Sie das folgende Arbeitsblatt.
Die folgende Unterprozedur würde alle Zellen innerhalb der Excel-Tabelle auswählen.
Sub AktuelleRegionFinden()
Dim bereich As Range
'den Bereich auf die Zelle E11 setzen
Set bereich = Range("E11")
'Den aktuellen Bereich auswählen
bereich.CurrentRegion.Select
End Sub
Wenn wir die Routine ausführen, werden alle Zellen in der aktuellen Region der Zelle E11 ausgewählt.
Wenn wir den Inhalt der angrenzenden Zellen entfernen und die Routine erneut ausführen, wird der folgende Bereich als aktuelle Region ausgewählt.
Wenn wir jedoch noch mehr Daten entfernen, könnten wir das folgende Beispiel für die aktuelle Region der Zelle E11 erhalten.
Wenn wir die Informationen in D13 eingeben, ergibt sich folgendes Bild:
CurrentRegion liefert also ein anderes Bereichsobjekt, das durch die kleinste Kombination von belegten Spalten und Zeilen, die den von Ihnen angegebenen Bereich umgeben, definiert ist.
Zeilen und Spalten in der aktuellen Region zählen
Mit CurrentRegion können wir die Zeilen und Spalten zählen.
Sub AktuelleRegionFinden()
Dim bereich As Range
Dim iZeile As Integer
Dim iSpalte As Integer
'den Bereich festlegen
Set bereich = Range("E11")
'Die Zeilen zählen
iZeile = bereich.CurrentRegion.Rows.Count
'Die Spalten zählen
iSpalte = bereich.CurrentRegion.Columns.Count
'Das Ergebnis in einer Meldungsbox anzeigen
MsgBox ("Wir haben " & iZeile & " Zeilen und " & iSpalte & " Spalten in unserer aktuellen Region")
End Sub
Wenn wir die Prozedur ausführen, wird die folgende Meldungsbox angezeigt.
Die Werte in der aktuellen Region löschen
Wir können auch die Eigenschaft CurrentRegion verwenden, um die Werte im Zellenbereich zu löschen.
Sub AktuelleRegionLeeren()
Dim bereich As Range
'Den Bereich festlegen
Set bereich = Range("E11")
bereich.CurrentRegion.Clear
End Sub
Die aktuelle Region einer Variablen zuweisen
Wir können auch die gesamte aktuelle Region einer Bereichsvariablen zuweisen und dann diese verwenden, um die Zellen zu bearbeiten, und zwar zum Formatieren bzw. Sortieren der Zellen usw..
Sub AktuelleRegionEinerVariablenZuweisen()
Dim bereich As Range
'Den Bereich auf die aktuelle Region von E11 setzen
Set bereich = Range("E11").CurrentRegion
'Hintergrund und Text einfärben
bereich.Interior.Pattern = xlSolid
bereich.Interior.Color = 65535
bereich.Font.Bold = True
bereich.Font.Color = -16776961
End Sub
Wenn wir die obige Prozedur ausführen, erhalten wir ein Arbeitsblatt wie unten abgebildet!
Anfangs- und Endzellen in der aktuellen Region ermitteln
Mit etwas komplizierterem Code können wir die erste und die letzte Zelle in einer aktuellen Region ermitteln.
Sub AnfangsUndEndzellenErmitteln()
Dim bereich As Range
Dim iZeile As Integer
Dim iSpalte As Integer
Dim iSpalteAnfang, iSpalteEnde, iZeileAnfang, iZeileEnde As String
'Die Bereichsvariable auf die aktuelle Region von E11 setzen
Set bereich = Range("E11").CurrentRegion
'Die Anfangsspalte für den Bereich festlegen
iSpalteAnfang = bereich.Column
'die Endspalte für den Bereich ermitteln
iSpalteEnde = iSpalteAnfang + (bereich.Columns.Count - 1)
'Ermitteln der Anfangszeile für den Bereich
iZeileAnfang = bereich.Row
'Ermitteln der Endzeile für den Bereich
iZeileEnde = iZeileAnfang + (bereich.Rows.Count - 1)
'Die Adresse der Anfangs- und Endzeilen und -spalten in einer Meldungsbox anzeigen
MsgBox ("Der Bereich beginnt bei " & Cells(iZeileAnfang, iSpalteAnfang).Address & " und endet bei " & Cells(iZeileEnde, iSpalteEnde).Address)
End Sub
Wenn wir den obigen Code ausführen, wird die folgende Meldungsbox angezeigt.