W różnego rodzaju projektach VBA w Excelu bardzo często pojawia się potrzeba wyznaczenia ostatniej niepustej komórki w kolumnie.
Wykorzystywana jest tu jedna właściwości obiektu Range czyli Range.End.
Zobaczmy, jak to wygląda w praktyce na podstawie takiego arkusza:

Są tu widoczne 2 różne tabelki, oddzielone kilkoma pustymi wierszami. Ostatnia niepusta komórka tabeli 1 to zaznaczona na żółto komórka A6, ostatnia z drugiej tabeli to A25 (zaznaczona na zielono).
Ta zielona komórka jest jednocześnie ostatnią niepustą w całej kolumnie.
Przykładowy kod wyznaczający nr wiersza to:
| Public Sub OstatniWiersz() Dim OstWZolty As Long Dim OstWZielony As Long OstWZolty = Range(„A1”).End(xlDown).Row OstWZielony = Range(„A” & Rows.Count).End(xlUp).Row End Sub |
Dla OstWZolty – od komórki A1 szukana jest ostatnia niepusta w dół.
Dla OstWZielony – od ostatniej komórki w kolumnie (wyznaczonej przez liczbę wierszy) w górę. Ten sposób jest najczęściej stosowany i najbezpieczniejszy.

