Das Finden der zuletzt verwendeten Zeilen und Spalten ist eine der grundlegenden und wichtigen Aufgaben für jede Automatisierung in Excel mithilfe von VBA. Zum automatischen Zusammenstellen von Arbeitsblättern, Arbeitsmappen und Anordnen von Daten müssen Sie die Grenze der Daten auf Arbeitsblättern ermitteln.

In diesem Artikel wird jede Methode zum Auffinden der letzten Zeile und Spalte in Excel auf einfachste Weise erläutert.

1. Suchen Sie die letzte nicht leere Zeile in einer Spalte mit Range.End

Sehen wir uns zuerst den Code an. Ich werde es Brief erklären.

Sub getLastUsedRow()

Dim last_row As Integer

last_row = Cells(Rows.Count, 1).End(xlUp).Row ‘This line gets the last row

Debug.Print last_row

End Sub

Das obige Unter findet die letzte Zeile in Spalte 1.

image

Wie funktioniert es?

Es ist so, als würde man zur letzten Zeile im Blatt gehen und dann die Tastenkombination STRG + AUF drücken.

Zellen (Rows.Count, 1): In diesem Teil wird die Zelle in Spalte A ausgewählt. Rows.Count gibt 1048576 an, was normalerweise die letzte Zeile im Excel-Blatt ist.

Cells(1048576, 1)
End (xlUp): End ist eine Methode der Bereichsklasse, mit der in Blättern zu Enden navigiert wird. xlUp ist die Variable, die die Richtung angibt.

Zusammen wählt dieser Befehl die letzte Zeile mit Daten aus.

Cells(Rows.Count, 1).End(xlUp)

Zeile: Zeile 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, letzte Zeilen mit Daten zu finden. Diese Methode wählt die letzte Zeile in Daten unabhängig von den leeren Zellen davor aus. 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 der 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 ‘This line selects the last cell in a column

End Sub

Der Befehl „.Select“ wählt die aktive Zelle aus.

Ruft die Adressspalte der letzten Zelle ab

Wenn Sie die Adresse der letzten Zelle in der 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 ‘This line selects the last cell in a column

Debug.print add

End Sub

Die Range.Address * -Funktion gibt die Adresse der aktiven Zelle zurück.

Letzte nicht leere Spalte in einer Zeile suchen

Es ist fast so, 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 ‘This line gets the last column

Debug.Print last_col

End Sub

image

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

Wie funktioniert es?

Nun, die Mechanik ist die gleiche wie das Finden 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 die letzte Spalte von Excel erhält.

Damit können wir einfach eine Tabelle oder einen Datensatz auswählen. Nachdem Sie einen Datensatz oder eine Tabelle ausgewählt haben, können Sie verschiedene Vorgänge ausführen, z. B. Kopieren, Einfügen, Formatieren, Löschen usw.

Hier haben wir Datensatz. Diese Daten können sich nach unten ausdehnen. Nur die Startzelle ist fest, nämlich B4. Die letzte Zeile und Spalte ist nicht festgelegt. Wir müssen die gesamte Tabelle dynamisch mit vba auswählen.

image

VBA-Code zur Auswahl einer Tabelle mit leeren Zellen

Sub select_table()

Dim last_row, last_col As Long

'Get last row

last_row = Cells(Rows.Count, 2).End(xlUp).Row

'Get last column

last_col = Cells(4, Columns.Count).End(xlToLeft).Column

'Select entire table

Range(Cells(4, 2), Cells(last_row, last_col)).Select

End Sub

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

image

Vorteile dieser Methode:

  1. Es ist einfach. Wir haben buchstäblich nur eine Zeile geschrieben, um die letzte Zeile mit Daten zu erhalten.

Das macht es einfach.

  1. Schnell. Weniger Codezeile, weniger Zeitaufwand.

  2. Einfach zu verstehen.

  3. 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 unbrauchbar. Was sehr viel weniger wahrscheinlich ist.

2. Letzte Zeile mit der Funktion Find () suchen

Sehen wir uns zuerst den Code an.

Sub last_row()

lastRow = ActiveSheet.Cells.Find("*", searchorder:=xlByRows, searchdirection:=xlPrevious).Row



Debug.Print lastRow

End Sub

image

Wie Sie im Bild sehen können, gibt dieser Code die letzte Zeile genau zurück.

Wie funktioniert es?

Hier verwenden wir die Suchfunktion, um mit dem Platzhalteroperator „*“ eine Zelle zu finden, die etwas enthält. Das Sternchen wird verwendet, um alles, Text oder Zahlen zu finden.

We set search order by rows (searchorder:=xlByRows). We also tell excel vba the direction of search as xlPrevious (searchdirection:=xlPrevious). It makes find function to search from end of the sheet, row wise.

Once it find a cell that contains anything, it stops. We use the Range.Row method to fetch last row from active cell.

Vorteile der Suchfunktion zum Abrufen der letzten Zelle mit Daten:

  1. Sie müssen den Ausgangspunkt nicht kennen. Es bringt dich nur in die letzte Reihe. . Es kann generisch sein und verwendet werden, um die letzte Zelle mit Daten in einem beliebigen Blatt ohne Änderungen zu finden.

  2. Kann verwendet werden, um eine letzte Instanz eines bestimmten Textes oder einer bestimmten Nummer 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 abzurufen. 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

image

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

Wie funktioniert es?

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.

Hinweis: * Wie oben erwähnt, gibt diese Methode die zuletzt verwendete Zelle und nicht die letzte Zelle mit Daten zurück. Wenn Sie die Daten in der letzten Zelle löschen, gibt der obige VBA-Code immer noch dieselbe 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.

Verwandte Artikel:

link: / files-arbeitsmappe-und-arbeitsblätter-in-vba-lösche-blätter-ohne-bestätigungs-aufforderungen-mit-vba-in-microsoft-excel [lösche blätter ohne bestätigungsaufforderungen mit VBA in Microsoft Excel]

link: / files-workbook-and-worksheets-in-vba-add-and-save-new-workbook-using-vba-in-microsoft-excel [Neue Arbeitsmappe mit VBA in Microsoft Excel 2016 hinzufügen und speichern]

link: / menüs-Symbolleisten-Statusleiste-in-vba-Anzeige-einer-Nachricht-in-der-Statusleiste-mit-vba-in-Microsoft-Excel [Anzeige einer Nachricht in der Excel VBA-Statusleiste]

link: / allgemeine-themen-in-vba-ausschalten-warnwarnmeldungen-mit-vba-in-microsoft-excel [Warnmeldungen mit VBA in Microsoft Excel 2016 ausschalten]

Beliebte Artikel:

link: / formeln-und-funktionen-einführung-der-vlookup-funktion [Die VLOOKUP-Funktion in Excel]

link: / tips-countif-in-microsoft-excel [COUNTIF in Excel 2016]

link: / excel-formel-und-funktion-excel-sumif-funktion [Verwendung der SUMIF-Funktion in Excel]