Wie verwende ich die usedrange-eigenschaft in vba?
In VBA stellt die UsedRange-Eigenschaft den Bereich eines Arbeitsblatts dar, das Daten enthält. Der verwendete Bereich reicht von der ersten Zelle im Arbeitsblatt, in der Sie einen Wert haben, bis zur letzten Zelle, in der Sie einen Wert haben. Genau wie im folgenden Beispiel, in dem Sie den Bereich von A1 bis C11 verwendet haben.
Hinweis: Die UsedRange-Eigenschaft ist eine schreibgeschützte Eigenschaft .
Schreiben Sie Code mit UsedRange
Verwenden Sie den folgenden Code.
- Zuerst müssen Sie die Tabelle angeben.
- Geben Sie dann einen Punkt (.) ein und geben Sie „UsedRange“ ein.
- Verwenden Sie anschließend die Eigenschaft oder Methode, die Sie verwenden möchten.
- Führen Sie am Ende den Code aus.
Sub vba_used_range() ActiveSheet.UsedRange.Clear End Sub
Der obige Code löscht alles aus dem verwendeten Bereich des aktiven Blatts.
Kopieren Sie den verwendeten Bereich
Verwenden Sie den folgenden Code, um den gesamten UsedRange zu kopieren.
Sub vba_used_range() ActiveSheet.UsedRange.Copy End Sub
Zählen Sie Zeilen und Spalten im verwendeten Bereich
Es gibt eine count-Eigenschaft, mit der Sie die Zeilen und Spalten des verwendeten Bereichs zählen können.
MsgBox ActiveSheet.UsedRange.Rows.Count MsgBox ActiveSheet.UsedRange.Columns.Count
Die beiden Codezeilen oben zeigen ein Meldungsfeld mit der Anzahl der Zeilen und Spalten an, die Sie im verwendeten Bereich haben.
Aktivieren Sie die letzte Zelle im verwendeten Bereich
Sie können auch die letzte Zelle im verwendeten Bereich aktivieren (dies wäre die letzte im Arbeitsblatt verwendete Zelle). Betrachten Sie den folgenden Code.
Sub vba_used_range() Dim iCol As Long Dim iRow As Long iRow = ActiveSheet.UsedRange.Rows.Count iCol = ActiveSheet.UsedRange.Columns.Count ActiveSheet.UsedRange.Select Selection.Cells(iRow, iCol).Select End Sub
Dieser Code ermittelt mithilfe der UsedRange-Eigenschaft die Anzahl der Zeilen und Spalten und verwendet diese Zahlen dann, um die letzte Zelle im verwendeten Bereich auszuwählen.
Siehe UsedRange in einem anderen Arbeitsblatt
Wenn Sie versuchen, auf den Bereich zu verweisen, der in einem anderen Arbeitsblatt als dem aktiven Blatt verwendet wird, zeigt VBA einen Fehler wie diesen an.
Daher muss das Arbeitsblatt, auf das Sie sich beziehen, aktiviert sein (nur dann können Sie die UsedRange-Eigenschaft verwenden).
Sub vba_used_range() Worksheets("Sheet4").Activate Worksheets("Sheet4").UsedRange.Select End Sub
Dies bedeutet, dass Sie nicht auf den in einer geschlossenen Arbeitsmappe verwendeten Bereich verweisen können. Sie können jedoch zuerst eine Arbeitsmappe öffnen und dann das Arbeitsblatt für die Verwendung der UsedRange-Eigenschaft aktivieren.
Rufen Sie die Adresse des verwendeten Bereichs ab
Verwenden Sie die folgende Codezeile, um die Adresse des verwendeten Bereichs abzurufen.
Sub vba_used_range() MsgBox ActiveSheet.UsedRange.Address End Sub
Zählt leere Zellen im genutzten Bereich
Der folgende Code verwendet FOR-Schleifen (For Each) und durchläuft alle Zellen im verwendeten Bereich und zählt leere Zellen.
Sub vba_used_range() Dim iCell As Range Dim iRange As Range Dim c As Long Dim i As Long Set iRange = ActiveSheet.UsedRange For Each iCell In ActiveSheet.UsedRange c = c + 1 If IsEmpty(iCell) = True Then i = i + 1 End If Next iCell MsgBox "There are total " & c & _ " cell(s) in the range, and out of those " & _ i & " cell(s) are empty." End Sub
Wenn Sie diesen Code ausführen, wird ein Meldungsfeld mit der Gesamtzahl der Zellen und der Anzahl der leeren Zellen angezeigt.