Die Community zu .NET und Classic VB.
Menü

FAQ 0105: Wie ermittle ich die letzte benutzte Zeile/Spalte in einem Excel-Sheet?

 von 

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)

Listing 1: Letzte benutzte Zeile

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

Listing 2: Letzte benutzte Zeile

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)

Listing 3: Letzte benutzte Spalte

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

Listing 4: Letzte benutzte Zeile

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.