FAQ 0105: Wie ermittle ich die letzte benutzte Zeile/Spalte in einem Excel-Sheet?
von Helge Rex
Frage
Wie ermittle ich die letzte benutzte Zeile/Spalte in einem Excel-Sheet?
letzte benutzte Zeile
Die letzte benutzte Datenzeile kann man so herausfinden:
' Const xlUp As Long = &HFFFFEFBE Debug.Print CStr(Cells(Rows.Count, 1).End(xlUp).Row)
Nachtrag von Udo Schmidt:
Excel bietet dafür spezielle Objekte an. Im Falle der letzten Zeile sieht das so aus:
' Const xlCellTypeLastCell As Long = 11 Debug.Print Cells.SpecialCells(xlCellTypeLastCell).Row
Die erste Methode ermittelt die erste Zelle ohne Wert (formatierte Zellen bleiben unberücksichtigt) im Gegensatz dazu berücksichtigt die zweite Methode auch Formatierungen.
Wird zum Beispiel in einem leeren Tabellenblatt die Höhe der Zeile 20 geändert, so gibt der zweite Code 20 zurück, der erste jedoch unverändert 1. Die zweite Funktion entspricht also der .UserRange Eigenschaft des Worksheets.
letzte benutzte Spalte
Die letzte benutzte Datenspalte kann man so herausfinden:
' Const xlToLeft As Long = &HFFFFEFC1 Debug.Print CStr(Cells(1, Columns.Count).End(xlToLeft).Column)
Nachtrag von Udo Schmidt:
Excel bietet dafür spezielle Objekte an. Im Falle der letzten Spalte sieht das so aus:
' Const xlCellTypeLastCell As Long = 11 Debug.Print Cells.SpecialCells(xlCellTypeLastCell).Column
Hinweise
In diesem Zusammenhang sei auch auf die FAQ 0015: Office-Dokument mit VB verwenden verwiesen.
Wird der Datenbereich nicht in Excel-VBA ermittelt, so muß der Name des Objektes ergänzt werden, und zwar bei Cells, Columns und Rows.
Falls die Konstanten xlUp und xlToLeft nicht bekannt sein sollten (z.B. durch late binding), müssen die Hochkommata vor den beiden hier genannten Konstanten entfernt werden.
Die letzte verwendete Zeile ist meist auch die vor der ersten leeren. Dies muß aber nicht so sein: Sind Leerzeilen im Arbeitsblatt enthalten, liefern die gezeigte Funktionen die Zeilennummer der letzten verwendeten Zeile zurück, egal, wie viele leere Zeilen vor dieser Zeile kommen.
Um die erste leere Zelle zu ermitteln, hilft FAQ 0089: Erste leere Zelle einer Spalte weiter.
Ihre Meinung
Falls Sie Fragen zu dieser FAQ haben, Ihre Erfahrung mit anderen Nutzern austauschen möchten oder auf eine Ergänzung hinweisen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.