VBA Letzte Reihe - Wie finde ich die zuletzt verwendete Zeile in Excel mithilfe von VBA-Code?

Inhaltsverzeichnis:

Anonim

Excel VBA Letzte Zeile

Das Auffinden der letzten Zeile in einer Spalte ist ein wichtiger Aspekt beim Schreiben und Dynamisieren von Makros. Da wir es nicht vorziehen, die Zellbereiche von Zeit zu Zeit zu aktualisieren, wenn wir mit Excel-Zellreferenzen arbeiten. Als Programmierer / Entwickler würden Sie es immer vorziehen, einen dynamischen Code zu schreiben, der für alle Daten verwendet werden kann und Ihren Anforderungen genügt. Darüber hinaus wäre es immer gut, wenn Sie die letzte bekannte Zeile Ihrer Daten hätten, damit Sie den Code dynamisch gemäß Ihren Anforderungen ändern können.

Ich möchte nur ein Beispiel hervorheben, das die Bedeutung von dynamischem Code wiederholt.

Angenommen, ich habe die unten angegebenen Daten mit Mitarbeitern und deren Gehältern.

Und sehen Sie sich den unten angegebenen Code an:

Code:

 Sub Example1 () Range ("D2"). Value = WorksheetFunction.Sum (Range ("B2: B11")) End Sub 

Hier gibt dieser Code die Summe der Gehälter für alle Mitarbeiter (Zelle B2: B11 ) in Zelle D2 aus . Siehe das Bild unten:

Was ist, wenn ich diesen Daten einige Zellen hinzufüge und diesen Code erneut ausführe?

Logischerweise fasst der obige Code nicht alle 14 Zeilen aus Spalte B zusammen. Grund dafür ist der Bereich, den wir unter WorksheetFunction (B2: B11) aktualisiert haben. Aus diesem Grund ist ein dynamischer Code, der die zuletzt gefüllte Zeile berücksichtigen kann, für uns wichtiger.

In diesem Artikel stelle ich einige Methoden vor, mit denen Sie mithilfe von VBA-Code die letzte Zeile für einen bestimmten Datensatz ermitteln können.

So finden Sie die zuletzt verwendete Zeile in der Spalte mithilfe von VBA

Im Folgenden finden Sie verschiedene Beispiele mit verschiedenen Methoden, um die zuletzt verwendete Zeile einer Spalte in Excel mithilfe von VBA-Code zu ermitteln.

Sie können diese Excel-Vorlage für die letzte Zeile von VBA hier herunterladen - Excel-Vorlage für die letzte Zeile von VBA

Beispiel # 1 - Verwenden der Range.End () Methode

Diese Methode entspricht der Verwendung von Strg + Abwärtspfeil in Excel, um zur letzten nicht leeren Zeile zu gelangen. Führen Sie in ähnlichen Zeilen die folgenden Schritte aus, um Code in VBA zu erstellen und die letzte nicht leere Zeile einer Spalte in Excel zu erreichen.

Schritt 1: Definieren Sie eine Variable, die einen Wert für die letzte nicht leere Zeile der Excel-Spalte annehmen kann.

Code:

 Sub Example2 () Dim Last_Row As Long End Sub 

Hier wird die Variable Last_Row als LONG definiert, um sicherzustellen, dass sie eine beliebige Anzahl von Argumenten aufnehmen kann.

Schritt 2: Verwenden Sie die definierte Variable, um den Wert der letzten nicht leeren Zeile zu speichern.

Code:

 Sub Example2 () Dim Last_Row As Long Last_Row = End Sub 

Schritt 3: Geben Sie den Code beginnend mit CELLS (Rows.Count vor Last_Row = ein .

Code:

 Sub Example2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count End Sub 

Schritt 4: Erwähnen Sie 1 nach einem Komma im oben genannten Code. Der Wert 1 ist ein Synonym für die erste Spalte der Excel-Tabelle.

Code:

 Sub Example2 () Dim Last_Row As Long Last_Row = Zellen (Rows.Count, 1) End Sub 

Mit diesem Code kann VBA die Gesamtzahl der (leeren + nicht leeren) Zeilen in der ersten Spalte des Excel-Arbeitsblatts ermitteln. Dies bedeutet, dass der Code es dem System ermöglicht, zur letzten Zelle von Excel zu wechseln.

Was ist, wenn Sie sich in der letzten Zelle des Excel befinden und zur letzten nicht leeren Zeile gehen möchten? Sie verwenden Strg + Aufwärtspfeil, richtig?

Dieselbe Logik, die wir in der nächsten Codezeile verwenden werden.

Schritt 5: Verwenden Sie eine Kombination aus Ende- Taste und xlUp, um zur letzten nicht leeren Zeile in Excel zu gelangen.

Code:

 Sub Example2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count, 1) .End (xlUp) End Sub 

Damit gelangen Sie zur letzten nicht leeren Zeile im Excel. Sie wollten jedoch eine Zeilennummer für das gleiche.

Schritt 6: Verwenden Sie ROW, um die Zeilennummer der letzten nicht leeren Zeile abzurufen.

Code:

 Sub Example2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count, 1) .End (xlUp) .Row End Sub 

Schritt 7: Zeigen Sie mit MsgBox den Wert von Last_Row an, der die letzte nicht leere Zeilennummer enthält.

Code:

 Sub Example2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count, 1) .End (xlUp) .Row MsgBox Last_Row End Sub 

Schritt 8: Führen Sie den Code über die Schaltfläche "Ausführen" oder durch Drücken von F5 aus und sehen Sie sich die Ausgabe an.

Ausgabe:

Schritt 9: Jetzt löschen wir eine Zeile und prüfen, ob der Code ein genaues Ergebnis liefert oder nicht. Es wird uns helfen, die Dynamik unseres Codes zu überprüfen.

Beispiel # 2 - Verwenden von Range und SpecialCells

Wir können auch die Range- und SepcialCells-Eigenschaft von VBA verwenden, um die letzte nicht leere Zeile der Excel-Tabelle abzurufen.

Führen Sie die folgenden Schritte aus, um die letzte nicht leere Zeile in Excel mithilfe des VBA-Codes abzurufen:

Schritt 1: Definieren Sie eine Variable erneut als Long.

Code:

 Sub Example3 () Dim Last_Row As Long End Sub 

Schritt 2: Beginnen Sie mit dem Speichern des Werts in der Variablen Last_Row mithilfe des Zuweisungsoperators.

Code:

 Sub Example3 () Dim Last_Row As Long Last_Row = End Sub 

Schritt 3: Starten Sie den Eingabebereich („A: A“) .

Code:

 Sub Example3 () Dim Last_Row As Long Last_Row = Bereich ("A: A") End Sub 

Schritt 4: Verwenden Sie die Funktion SpecialCells, um die letzte nicht leere Zelle zu ermitteln.

Code:

 Sub Example3 () Dim Last_Row As Long Last_Row = Bereich ("A: A"). SpecialCells (xlCellTypeLastCell) End Sub 

Diese Funktion SpecialCells wählt die letzte Zelle aus Ihrem Excel aus, während sie in Klammern angegeben ist ( xlCellTypeLastCell ermöglicht die Auswahl der letzten nicht leeren Zelle aus Ihrem Excel- Arbeitsblatt ).

Schritt 5: Verwenden Sie jetzt ROW, um die letzte Zeile von Ihrem Excel-Arbeitsblatt abzurufen.

Code:

 Sub Example3 () Dim Last_Row As Long Last_Row = Range ("A: A"). SpecialCells (xlCellTypeLastCell) .Row End Sub 

Dadurch wird die letzte nicht leere Zeile von Ihrem Excel zurückgegeben.

Schritt 6: Weisen Sie diesen Wert von Last_Row nun MsgBox zu, damit die letzte nicht leere Zeilennummer im Meldungsfeld angezeigt wird.

Code:

 Sub Example3 () Dim Last_Row As Long Last_Row = Range ("A: A"). SpecialCells (xlCellTypeLastCell) .Row MsgBox Last_Row End Sub 

Schritt 7: Führen Sie den Code aus, indem Sie die Taste F5 oder Ausführen oben links drücken.

Ausgabe:

Sie können sehen, dass die letzte nicht leere Zellennummer mit Bezug auf die Spalte A durch MsgBox ausgegeben wird. Weil wir die Spalte A unter Range-Funktion beim Definieren der Variablenformel erwähnt haben.

Schritt 8: Wenn wir eine Zeile löschen und diese Formel ausführen können. Mal sehen was passiert.

Sie können sehen, dass das System die Zeilenzahl immer noch mit 14 angegeben hat. Obwohl ich eine Zeile gelöscht habe und die tatsächliche Zeilenzahl 13 beträgt, hat das System die Zeilenzahl nicht genau erfasst. Damit das System die tatsächliche Zeilenanzahl erfasst, müssen Sie das Arbeitsblatt speichern und den Code erneut ausführen.

In diesem Screenshot sehen Sie jetzt die tatsächliche Zeilenzahl.

Beispiel # 3 - Verwenden von Range.Find ()

Führen Sie die folgenden Schritte aus, um die letzte nicht leere Zeile in Excel mithilfe des VBA-Codes abzurufen:

Schritt 1: Definieren Sie eine Variable so lange.

Code:

 Sub Example4 () Dim Last_Row As Long End Sub 

Schritt 2: Verwenden Sie jetzt den folgenden Code, um die letzte nicht leere Zeile anzuzeigen.

Code:

 Sub Example4 () Dim Last_Row As Long Last_Row = Cells.Find (What: = "*", _ After: = Range ("A1"), _ LookAt: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False) .Row End Sub 

Hier sucht die FIND-Funktion nach einer ersten nicht leeren Zelle. Asterisk (*) ist ein Platzhalter-Operator, mit dem Sie das herausfinden können.

Ausgehend von Zelle A1 kehrt das System zur letzten Zelle des Arbeitsblatts zurück und sucht in Rückwärtsrichtung (xlPrevious). Es bewegt sich von rechts nach links (xlByRows) und durchläuft alle Zeilen in ähnlichen Zeilen im selben Blatt, bis es eine nicht leere Zeile findet (siehe die .ROW am Ende des Codes).

Schritt 3: Verwenden Sie MsgBox, um den Wert der letzten nicht leeren Zeile zu speichern und als Popup-Feld anzuzeigen.

Code:

 Sub Example4 () Dim Last_Row As Long Last_Row = Cells.Find (What: = "*", _ After: = Range ("A1"), _ LookAt: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False) .Row MsgBox Last_Row End Sub 

Schritt 4: Führen Sie den Code aus und sehen Sie die Ausgabe als Popup-Feld mit der letzten nicht leeren Zeilennummer.

Ausgabe:

Dinge, an die man sich erinnern sollte

  • End (Beispiel 1) kann verwendet werden, um die erste leere Zelle / Zeile oder die letzte nicht leere Zelle / Zeile in einer bestimmten Spalte mithilfe von VBA-Code zu ermitteln.
  • Das Ende arbeitet die meiste Zeit mit einer einzelnen Spalte. Wenn Sie Daten in Bereichen haben, ist es schwierig zu entscheiden, in welcher Spalte die letzte nicht leere Zeile ermittelt werden soll.
  • Suchen (Beispiel 3) bearbeitet einen gesamten Bereich von Anfang an und ermittelt die letzte nicht leere Zelle / Zeile in einer bestimmten Spalte mithilfe von VBA-Code. Es kann auch verwendet werden, um die letzte nicht leere Spalte herauszufinden.

Empfohlene Artikel

Dies ist eine Anleitung zu VBA Last Row. Hier besprechen wir, wie die zuletzt verwendete Zeile in einer bestimmten Spalte zusammen mit einigen praktischen Beispielen und einer herunterladbaren Excel-Vorlage gefunden wird. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren -

  1. Wie verwende ich VBA Insert Column?
  2. Auswählen von Excel-Zeilen und -Spalten
  3. Übersicht über VBA-Range-Zellen
  4. Wie man Zellen in Excel hinzufügt?