Sie wollen in #Excel mit #VBA die #letzteZeile oder die #letzteSpalte finden? Da haben Sie viele Möglichkeiten – ich stelle Ihnen heute die dritte vor, es wird jeweils die Zeilennummer bzw. die Spaltennummer (also nicht der Buchstabe) geliefert. mySheet ist eine Objektvariable, die auf das auszuwertende Blatt verweist (z.B. per
Set mySheet = ThisWorkbook.Worksheets("Tabelle1")
oder
Set mySheet = ActiveSheet
schon irgendwo früher im Code. Wir gehen davon aus, dass das passt :-).
LastRowNo = mySheet.Range("A1").CurrentRegion.Rows.Count
LastColNo = mySheet.Range("A1").CurrentRegion.Columns.Count
LastRowNo = mySheet.Range("C5").CurrentRegion.Rows.Count + mySheet.Range("C5").Row - 1
LastColNo = mySheet.Range("C5").CurrentRegion.Columns.Count + mySheet.Range("C5").Column - 1
Damit erfragen wir die Anzahl der Zeilen des „umgebenden Bereichs“ (CurrentRegion), ausgehend von einer Startzelle. Ist die Startzelle in Zeile 1 bzw. Spalte A, dann haben wir damit gleichzeitig die Nummer der letzten Zeile des umgebenden Bereichs. Ist es eine andere Zelle, dann müssen wir noch deren Zeilen- bzw. Spaltennummer dazuzählen und 1 abziehen, um die Nummer der letzten Zeile bzw. Spalte zu erhalten.
Umgebender Bereich? Das ist der kleinstmögliche rechteckige Bereich, ausgehend von Ihrer Zelle, der keine durchgehende Reihe bzw. Säule an leeren Zellen aufweist. Oder anders ausgedrückt: Excel geht so lange nach links, rechts, oben und unten, bis der Bereich von einem Rechteck aus leeren Zellen begrenzt ist.
Ein Bild sagt mehr als tausend Worte, und fünf Bilder sagen noch mehr :-):