VBA UsedRange

UsedRange sind, wie der Name schon sagt, die Bereiche, in denen als leere Werte die leeren Zellen nicht in den verwendeten Bereichen enthalten sind. In VBA sind die verwendeten Bereiche die Eigenschaft des Bereichsobjekts in VBA für diesen Zellenbereich in Zeilen und Spalten, die nicht leer sind und einige Werte enthalten.

UsedRange in VBA Excel

Der UsedRange in VBA ist eine Eigenschaft des Arbeitsblatts, die ein Bereichsobjekt zurückgibt, das den in einem bestimmten Arbeitsblatt verwendeten Bereich (alle in einem Arbeitsblatt verwendeten oder ausgefüllten Excel-Zellen) darstellt. Dies ist eine Eigenschaft, die den Bereich darstellt, der von der oben links verwendeten Zelle und der zuletzt rechts verwendeten Zelle in einem Arbeitsblatt abgedeckt oder begrenzt wird.

Wir können 'Verwendete Zelle' als eine Zelle beschreiben, die eine beliebige Formel, Formatierung, einen Wert usw. enthält. Wir können die zuletzt verwendete Zelle auch auswählen, indem wir STRG + ENDE auf der Tastatur drücken.

Das Folgende ist eine Illustration eines UsedRange in einem Arbeitsblatt:

Im obigen Screenshot sehen wir, dass der UsedRange A1: D5 ist.

Beispiele für die Excel VBA UsedRange-Eigenschaft

Schauen wir uns einige Beispiele an, um zu sehen, wie die UsedRange-Eigenschaft in einem Arbeitsblatt verwendet werden kann, um den verwendeten Bereich in VBA zu finden:

Sie können diese VBA UsedRange Excel-Vorlage hier herunterladen - VBA UsedRange Excel-Vorlage

Beispiel 1

Angenommen, wir haben eine Excel-Datei mit zwei Arbeitsblättern, und wir möchten den verwendeten Bereich auf Sheet1 suchen und auswählen.

Lassen Sie uns sehen, was das Sheet1 enthält:

Wir verwenden die UsedRange-Eigenschaft im VBA-Sofortfenster, um diese Aufgabe auszuführen. Das VBA-Sofortfenster ist ein Tool, mit dem Sie Informationen zu Excel-Dateien abrufen, VBA-Code schnell ausführen oder debuggen können, auch wenn der Benutzer keine Makros schreibt. Es befindet sich im Visual Basic-Editor und kann wie folgt aufgerufen werden:

  • Gehen Sie zur Registerkarte Entwickler Excel und klicken Sie dann auf Visual Basic-Editor oder drücken Sie Alt + F11 , um das Fenster Visual Basic-Editor zu öffnen.

Dabei öffnet sich ein Fenster wie folgt:

  • Drücken Sie Strg + G , um das unmittelbare Fenster zu öffnen, und geben Sie den Code ein.

Das unmittelbare Fenster sieht aus wie:

  • Der folgende Code wählt den verwendeten Bereich auf Blatt1 aus

Code:

Arbeitsblätter ("Sheet1"). True aktivieren? ActiveSheet.UsedRange.Select True

Die erste Anweisung des Codes aktiviert Blatt1 der Datei, und die zweite Anweisung wählt den verwendeten Bereich in diesem aktiven Blatt aus.

Beim Schreiben dieses Codes sehen wir, dass der in Sheet1 verwendete Bereich wie folgt ausgewählt wird:

Beispiel 2

Angenommen, wir möchten in diesem Beispiel die Gesamtzahl der in Blatt 1 verwendeten Zeilen ermitteln. Führen Sie dazu die folgenden Schritte aus:

  • Erstellen Sie im Modul einen Makronamen.

Code:

 Sub TotalRows () End Sub 

  • Definieren Sie die Variable TotalRow als Integer in VBA:

Code:

 Sub TotalRows () Dim TotalRow As Integer End Sub 

  • Weisen Sie nun der Variablen TotalRow die Formel zu, um die Gesamtzahl der Zeilen zu berechnen:

Code:

 Sub TotalRows () Dim TotalRow As Integer TotalRow = ActiveSheet.UsedRange.Rows.Count End Sub 

  • Jetzt kann der resultierende Wert von TotalRow mithilfe eines VBA-Meldungsfelds (MsgBox) wie folgt angezeigt und zurückgegeben werden:

Code:

 Sub TotalRows () Dim TotalRow As Integer TotalRow = ActiveSheet.UsedRange.Rows.Count MsgBox TotalRow End Sub 

  • Jetzt führen wir diesen Code manuell oder durch Drücken von F5 aus und erhalten die Gesamtzahl der in Blatt 1 verwendeten Zeilen, die in einem Meldungsfeld wie folgt angezeigt werden:

Im obigen Screenshot sehen wir also, dass '5' im Meldungsfeld zurückgegeben wird, und wie wir in Blatt 1 sehen können, beträgt die Gesamtzahl der Zeilen im verwendeten Bereich 5.

Beispiel 3

Wenn wir die Gesamtzahl der in Sheet1 verwendeten Spalten ermitteln möchten, führen wir die gleichen Schritte wie oben aus, mit Ausnahme einer geringfügigen Änderung des Codes wie folgt:

Code:

 Sub TotalCols () Dim TotalCol As Integer TotalCol = ActiveSheet.UsedRange.Columns.Count MsgBox TotalCol End Sub 

Wenn wir diesen Code jetzt manuell oder durch Drücken von F5 ausführen, wird die Gesamtzahl der in Blatt 1 verwendeten Spalten wie folgt in einem Meldungsfeld angezeigt:

Daher wird im Meldungsfeld '4' zurückgegeben, und wie wir in Blatt 1 sehen können, beträgt die Gesamtzahl der Spalten im verwendeten Bereich 4.

Beispiel 4

Angenommen, wir möchten die zuletzt verwendete Zeilen- und Spaltennummer in Blatt 2 der Datei finden. Lassen Sie uns sehen, was das Sheet2 enthält:

Dazu führen wir die folgenden Schritte aus:

  • Erstellen Sie im Modul einen Makronamen.

Code:

 Sub LastRow () End Sub 

  • Definieren Sie die Variable LastRow als Integer.

Code:

 Sub LastRow () Dim LastRow As Integer End Sub 

  • Weisen Sie nun der Variablen LastRow die Formel zu, um die zuletzt verwendete Zeilennummer zu berechnen:

Code:

 Sub LastRow () Dim LastRow As Integer LastRow = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell) .Row End Sub 

Die SpecialCells-Methode in Excel VBA gibt ein Bereichsobjekt zurück, das nur die angegebenen Zelltypen darstellt. Die Syntax für die SpecialCells-Methode lautet:

RangeObject.SpecialCells (Typ, Wert)

Im obigen Code repräsentiert xlCellTypeLastCell: die letzte Zelle im verwendeten Bereich.

Hinweis: 'xlCellType' enthält sogar leere Zellen, deren Standardformat für eine ihrer Zellen geändert wurde.
  • Jetzt kann der resultierende Wert der LastRow-Nummer mithilfe eines Meldungsfelds (MsgBox) wie folgt angezeigt und zurückgegeben werden:

Code:

 Sub LastRow () Dim LastRow As Integer LastRow = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell) .Row MsgBox LastRow End Sub 

  • Jetzt führen wir diesen Code manuell oder durch Drücken von F5 aus und erhalten die zuletzt verwendete Zeilennummer in Blatt 2, die in einem Meldungsfeld wie folgt angezeigt wird:

Im obigen Screenshot sehen wir also, dass '12' im Meldungsfeld zurückgegeben wird, und wie wir in Sheet2 sehen können, ist die zuletzt verwendete Zeilennummer 12.

Wenn wir die zuletzt verwendete Spaltennummer in Blatt 2 finden möchten, führen wir die gleichen Schritte wie oben aus, mit Ausnahme einer geringfügigen Änderung des Codes wie folgt:

Code:

 Sub LastCol () Dim LastCol As Integer LastCol = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell) .Column MsgBox LastCol End Sub 

Wenn wir diesen Code jetzt manuell oder durch Drücken von F5 ausführen, wird die zuletzt verwendete Spaltennummer in Blatt 2 wie folgt in einem Meldungsfeld angezeigt:

Im obigen Screenshot sehen wir also, dass '3' im Meldungsfeld zurückgegeben wird, und wie wir in Blatt 2 sehen können, ist die zuletzt verwendete Spaltennummer 3.

Dinge, die Sie über VBA UsedRange beachten sollten

  • VBA UsedRange ist ein Rechteckbereich.
  • VBA UsedRange enthält Zellen, die Daten haben oder formatiert sind usw.
  • Excel VBA UsedRange enthält nicht unbedingt die obere linke Zelle des Arbeitsblatts.
  • UsedRange berücksichtigt die aktive Zelle nicht unbedingt als verwendet.
  • UsedRange kann verwendet werden, um die zuletzt verwendete Zeile in VBA zu finden und den verwendeten Bereich usw. zurückzusetzen.
  • Durch Drücken der Excel-Tastenkombination STRG + UMSCHALT + EINGABETASTE auf einer Tastatur können Sie die Auswahl von einer aktiven Zelle auf die zuletzt verwendete Zelle in einem Arbeitsblatt erweitern.