3 beste Möglichkeiten, die letzte nicht leere Zeile und Spalte mit VBA zu finden

Inhaltsverzeichnis

Das Auffinden der zuletzt verwendeten Zeile und Spalte ist eine der grundlegenden und wichtigen Aufgaben für jede Automatisierung in Excel mit VBA. Für das automatische Zusammenstellen von Blättern, Arbeitsmappen und das Anordnen von Daten müssen Sie die Datengrenze auf Blättern ermitteln.

In diesem Artikel wird jede Methode zum Auffinden der letzten Zeile und Spalte in Excel auf einfachste Weise erklärt.
1. Suchen Sie die letzte nicht leere Zeile in einer Spalte mit Range.End
Sehen wir uns zuerst den Code an. Ich erkläre es Brief.

Sub getLastUsedRow() Dim last_row As Integer last_row = Cells(Rows.Count, 1).End(xlUp).Row ‘Diese Zeile erhält die letzte Zeile Debug.Print last_row End Sub

Das obige Sub findet die letzte Zeile in Spalte 1.

Wie es funktioniert?
Es ist genau so, als würden Sie zur letzten Zeile im Blatt gehen und dann die Tastenkombination STRG+UP drücken.
Zellen (Zeilen.Anzahl, 1): Dieser Teil wählt die Zelle in Spalte A aus. Rows.Count ergibt 1048576, was normalerweise die letzte Zeile im Excel-Blatt ist.

Zellen(1048576, 1)

.Ende(xlUp): End ist eine Methode der Range-Klasse, die verwendet wird, um in Blättern zu Enden zu navigieren. xlUp ist die Variable, die die Richtung angibt. Zusammen wählt dieser Befehl die letzte Zeile mit Daten aus.

Zellen(Zeilen.Anzahl, 1).End(xlUp)

.Reihe : row gibt die Zeilennummer der ausgewählten Zelle zurück. Daher erhalten wir die Zeilennummer der letzten Zelle mit Daten in Spalte A. In unserem Beispiel ist es 8.

Sehen Sie, wie einfach es ist, die letzten Zeilen mit Daten zu finden. Diese Methode wählt die letzte Zeile in den Daten aus, unabhängig von leeren Zellen davor. Sie können im Bild sehen, dass nur Zelle A8 Daten enthält. Alle vorhergehenden Zellen außer A4 sind leer.

Wählen Sie die letzte Zelle mit Daten in einer Spalte aus
Wenn Sie die letzte Zelle in Spalte A auswählen möchten, entfernen Sie einfach ".row" vom Ende und schreiben Sie .select.

Sub getLastUsedRow() Cells(Rows.Count, 1).End(xlUp).Select ‘Diese Zeile wählt die letzte Zelle in einer Spalte aus End Sub

Der Befehl „.Select“ wählt die aktive Zelle aus.
Adressspalte der letzten Zelle abrufen
Wenn Sie die Adresse der letzten Zelle in Spalte A abrufen möchten, entfernen Sie einfach ".row" vom Ende und schreiben Sie .address.

Sub getLastUsedRow() add=Cells(Rows.Count, 1).End(xlUp).address ‘Diese Zeile wählt die letzte Zelle in einer Spalte aus Debug.print add End Sub

Die Reichweite.Die Anschrift Funktion gibt die Adresse der aktiven Zelle zurück.
Letzte nicht leere Spalte in einer Zeile suchen
Es ist fast dasselbe, als würde man die letzte nicht leere Zelle in einer Spalte finden. Hier erhalten wir die Spaltennummer der letzten Zelle mit Daten in Zeile 4.

Sub getLastUsedCol() Dim last_col As Integer last_col = Cells(4,Columns.Count).End(xlToLeft).Column ‘Diese Zeile erhält die letzte Spalte Debug.Print last_col End Sub


Sie können im Bild sehen, dass die Spaltennummer der letzten nicht leeren Zelle in Zeile 4 zurückgegeben wird. Das ist 4.
Wie es funktioniert?

Nun, die Mechanik ist dieselbe wie beim Suchen der letzten Zelle mit Daten in einer Spalte. Wir haben nur Schlüsselwörter verwendet, die sich auf Spalten beziehen.
Datensatz in Excel mit VBA auswählen
Jetzt wissen wir, wie man mit VBA die letzte Zeile und letzte Spalte von Excel erhält. Damit können wir einfach eine Tabelle oder einen Datensatz auswählen. Nachdem Sie den Datensatz oder die Tabelle ausgewählt haben, können wir mehrere Operationen damit ausführen, wie Kopieren-Einfügen, Formatieren, Löschen usw.
Hier haben wir einen Datensatz. Diese Daten können sich nach unten ausdehnen. Nur die Startzelle ist festgelegt, die B4 ist. Die letzte Zeile und Spalte ist nicht festgelegt. Wir müssen die gesamte Tabelle dynamisch mit vba auswählen.

VBA-Code zum Auswählen einer Tabelle mit leeren Zellen

Sub select_table() Dim last_row, last_col As Long 'Letzte Zeile abrufen last_row = Cells(Rows.Count, 2).End(xlUp).Row 'Letzte Spalte abrufen last_col = Cells(4, Columns.Count).End(xlToLeft) .Spalte 'Gesamten Tabellenbereich auswählen(Cells(4, 2), Cells(last_row, last_col)).Select End Sub

Wenn Sie dies ausführen, wird die gesamte Tabelle in Bruchteilen einer Sekunde ausgewählt. Sie können neue Zeilen und Spalten hinzufügen. Es werden immer die gesamten Daten ausgewählt.

Vorteile dieser Methode:

  1. Es ist einfach. Wir haben buchstäblich nur eine Zeile geschrieben, um die letzte Zeile mit Daten zu erhalten. Dies macht es einfach.
  2. Schnell. Weniger Codezeilen, weniger Zeitaufwand.
  3. Einfach zu verstehen.
  4. Funktioniert perfekt, wenn Sie eine ungeschickte Datentabelle mit festem Startpunkt haben.

Nachteile der Range.End-Methode:

  1. Der Ausgangspunkt muss bekannt sein.
  2. Sie können nur die letzte nicht leere Zelle in einer bekannten Zeile oder Spalte abrufen. Wenn Ihr Startpunkt nicht festgelegt ist, ist er nutzlos. Was mit sehr geringer Wahrscheinlichkeit passiert.

2. Suchen Sie die letzte Zeile mit der Funktion Find()
Sehen wir uns zuerst den Code an.

 Sub last_row() lastRow = ActiveSheet.Cells.Find("*", searchorder:=xlByRows, searchdirection:=xlPrevious).Row Debug.Print lastRow End Sub 


Wie Sie im Bild sehen können, gibt dieser Code die letzte Zeile genau zurück.
Wie es funktioniert?
Hier verwenden wir die Suchfunktion, um jede Zelle zu finden, die etwas enthält, indem wir den Platzhalteroperator "*" verwenden. Asterisk wird verwendet, um alles zu finden, Text oder Zahlen.

Wir legen die Suchreihenfolge nach Zeilen fest (searchorder:=xlByRows). Wir teilen Excel vba auch die Suchrichtung als xlPrevious mit (searchdirection:=xlPrevious). Es macht eine Suchfunktion, um vom Ende des Blattes zeilenweise zu suchen. Sobald es eine Zelle findet, die etwas enthält, stoppt es. Wir verwenden die Range.Row-Methode, um die letzte Zeile aus der aktiven Zelle abzurufen.

Vorteile der Find-Funktion zum Abrufen der letzten Zelle mit Daten:

  1. Sie müssen den Ausgangspunkt nicht kennen. Es bringt Sie nur in die letzte Reihe.
  2. Es kann generisch sein und verwendet werden, um die letzte Zelle mit Daten in einem beliebigen Blatt ohne Änderungen zu finden.
  3. Kann verwendet werden, um jede letzte Instanz eines bestimmten Textes oder einer bestimmten Zahl auf dem Blatt zu finden.

Nachteile der Funktion Find():

  1. Es ist hässlich. Zu viele Argumente.
  2. Es ist langsam.
  3. Kann nicht verwendet werden, um die letzte nicht leere Spalte zu erhalten. Technisch können Sie. Aber es wird zu langsam.

3. Verwenden der SpecialCells-Funktion zum Abrufen der letzten Zeile
Die SpecialCells-Funktion mit dem Argument xlCellTypeLastCell gibt die zuletzt verwendete Zelle zurück. Sehen wir uns zuerst den Code an

Sub spl_last_row_() lastRow = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row Debug.Print lastRow End Sub


Wenn Sie den obigen Code ausführen, erhalten Sie die Zeilennummer der zuletzt verwendeten Zelle.

Wie es funktioniert?

Dies ist das VBA-Äquivalent der Tastenkombination STRG+Ende in Excel. Es wählt die zuletzt verwendete Zelle aus. Wenn Sie das Makro aufzeichnen, während Sie STRG+Ende drücken, erhalten Sie diesen Code.

Sub Macro1() ' ' Macro1 Macro ' ' ActiveCell.SpecialCells(xlLastCell).Select End Sub 

Wir haben es nur verwendet, um die Zeilennummer der zuletzt verwendeten Zelle zu erhalten.

Notiz: Wie ich oben sagte, gibt diese Methode die letzte verwendete Zelle zurück, nicht die letzte Zelle mit Daten. Wenn Sie die Daten in der letzten Zelle löschen, gibt der obige VBA-Code immer noch die gleiche Zellreferenz zurück, da es sich um die „zuletzt verwendete Zelle“ handelt. Sie müssen das Dokument zuerst speichern, um mit dieser Methode die letzte Zelle mit Daten zu erhalten.

Löschen Sie Blätter ohne Bestätigungsaufforderung mit VBA in Microsoft Excel

Hinzufügen und Speichern einer neuen Arbeitsmappe mit VBA in Microsoft Excel 2016

Anzeigen einer Nachricht in der Excel VBA-Statusleiste

Deaktivieren Sie Warnmeldungen mit VBA in Microsoft Excel 2016

Populäre Artikel:

Die SVERWEIS-Funktion in Excel

ZÄHLENWENN in Excel 2016

So verwenden Sie die SUMIF-Funktion in Excel

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave