Suchen Sie die letzte Zeile und Spalte in VBA

Glen Alfaro 30 Januar 2023
  1. Code-Syntax
  2. Holen Sie sich die letzte Zeile/Spalte mit Daten im aktuellen Arbeitsblatt in VBA
  3. Holen Sie sich die letzte Zeile/Spalte mit Daten aus einem anderen Arbeitsblatt in VBA
  4. Holen Sie sich die letzte Zeile/Spalte eines Arbeitsblatts mit einer Funktion
Suchen Sie die letzte Zeile und Spalte in VBA

Beim Umgang mit Daten in einer Tabelle müssen wir die letzte Zeile und letzte Spalte mit Daten kennen. Es ist nützlich, eine Grenze festzulegen, wo unser Cursor iterieren kann.

VBA hat keine eingebaute Funktion, um die letzte Zeile/Spalte zurückzugeben, die in einer Tabelle verwendet wird. Aber mit einfachen VBA-Lösungen können wir unsere benutzerdefinierte Funktion so gestalten, dass sie den Wert der letzten Zeile/Spalte zurückgibt, die in einem Arbeitsblatt verwendet wird.

In diesem Artikel wird gezeigt, wie Sie mit Excel VBA die letzte Zeile und Spalte finden, die in einer Tabelle verwendet werden.

Code-Syntax

Code zum Abrufen der letzten Zeile:

Cells(Rows.Count,[colNum]).End(xlUp).Row

Code, um die letzte Spalte zu erhalten:

Cells(Rows.Count,[rowNum]).End(xlUp).Row

Wo,

[colNum] Ganzzahliger Wert der Spalte, in der sich die letzte Zeile befindet
[rowNum] Ganzzahliger Wert der Zeile, in der sich die letzte Spalte befindet

Holen Sie sich die letzte Zeile/Spalte mit Daten im aktuellen Arbeitsblatt in VBA

Der folgende Codeblock muss auf dem Zielarbeitsblatt auf Microsoft Excel Objects geschrieben werden.

Sub GetLastRowCol()

'Declare lastRow and Last Col as Long datatype as we need to presume the values will be _
assigned with these variables are very high numbers.
Dim lastRow as Long
Dim lastCol as Long

'Assigning lastRow and lastCol variable
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
lastCol = Cells(1, Columns.Count).End(xlToLeft).Column
Debug.Print "The last Row is: " & lastRow & vbNewline & "The last Column is :" & lastCol 
End Sub

Ausgabe:

The last Row is :1
The last Column is :1

Holen Sie sich die letzte Zeile/Spalte mit Daten aus einem anderen Arbeitsblatt in VBA

Bei mehreren Arbeitsblättern müssen wir explizit zuweisen, in welchem ​​Arbeitsblatt wir uns gerade befinden.

Der folgende Codeblock zeigt, wie Sie die letzte verwendete Zeile/Spalte aus einem anderen Arbeitsblatt erhalten.

Sub GetLastRowCol()

'Declare lastRow and Last Col as Long datatype as we need to presume the values will be _
assigned with these variables are very high numbers.
Dim lastRow as Long
Dim lastCol as Long

'Declaring workbook and worksheets
Dim wb as Workbook
Dim s1, s2 as Worksheet

'Initializing the wb, s1, and s2 objects.
Set wb = ThisWorkBook
Set s1 = wb.Sheets("Sheet1")
Set s2 = wb.Sheets("Sheet2")

'Will return the row number of the last row in Column A on Sheet1
lastRow = s1.Cells(s1.Rows.Count, 1).End(xlUp).Row
'Will return the row number of the last row in Row 1 on Sheet1
lastCol = s1.Cells(1, s1.Columns.Count).End(xlToLeft).Column

Debug.print "The last row in Sheet1:" & lastRow & vbNewline & "The last column in Sheet 1:" & lastCol

'Will return the row number of the last row in Column A on Sheet2
lastRow = s2.Cells(s2.Rows.Count, 1).End(xlUp).Row
'Will return the row number of the last row in Column A on Sheet2
lastCol = s2.Cells(1, s2.Columns.Count).End(xlToLeft).Column

Debug.print "The last row in Sheet2:" & lastRow & vbNewline & "The last column in Sheet 2:" & lastCol

End Sub

Ausgabe:

The last row in Sheet1: 1
The last column in Sheet1: 1
The last row in Sheet2: 1
The last column in Sheet2: 1

Holen Sie sich die letzte Zeile/Spalte eines Arbeitsblatts mit einer Funktion

Die folgende Funktion gibt die letzte Zeile oder die letzte Spalte basierend auf dem Worksheet-Argument zurück.

Function GetLastRow(s As Worksheet) As Long
GetLastRow = s.Cells(s.Rows.Count, 1).End(xlUp).Row
End Function
Function GetLastCol(s As Worksheet) As Long
GetLastCol = s.Cells(1, s.Columns.Count).End(xlToLeft).Column
End Function

Sub testRow()
Dim wb As Workbook
Dim s1 As Worksheet

Set wb = ThisWorkbook
Set s1 = wb.Sheets("Sheet1")
Debug.Print GetLastRow(s1)
End Sub

Sub testCol()
Dim wb As Workbook
Dim s1 As Worksheet

Set wb = ThisWorkbook
Set s1 = wb.Sheets("Sheet1")
Debug.Print GetLastCol(s1)
End Sub

testRow-Ausgabe:

1

testCol-Ausgabe:

1

Verwandter Artikel - VBA Row

Verwandter Artikel - VBA Column