VBA — jak znaleźć ostatni wiersz w Excelu?
Gotowe makro VBA do znalezienia ostatniego użytego wiersza w wybranej kolumnie. Kod, wyjaśnienie i najczęstsze błędy.
Najczęściej używany wzorzec to zejście od ostatniego wiersza arkusza w górę metodą End(xlUp).
Skopiuj makro
Sub OstatniWiersz()
Dim ws As Worksheet
Dim lastRow As Long
Set ws = ThisWorkbook.Worksheets("Dane")
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
MsgBox "Ostatni wiersz: " & lastRow
End SubCo zmienić w kodzie?
Zmień "Dane" na nazwę swojego arkusza.
Zmień "A" na kolumnę, która zawsze jest wypełniona dla każdego rekordu.
Jeśli pierwszy wiersz jest nagłówkiem, wynik 1 może oznaczać brak danych.
Jak działa ten kod?
ws.Rows.Count zwraca numer ostatniego możliwego wiersza w danym arkuszu.
Cells(..., "A").End(xlUp) działa podobnie do Ctrl+strzałka w górę i zatrzymuje się na pierwszej niepustej komórce.
Dopisanie .Row zwraca sam numer wiersza jako Long.
Najczęstsze błędy
Nie opieraj się na kolumnie, która może mieć puste komórki na końcu danych.
Kwalifikuj Cells i Rows przez konkretny arkusz, zamiast polegać na ActiveSheet.
Jeśli chcesz znaleźć ostatnią używaną komórkę niezależnie od kolumny, potrzebujesz innego podejścia, np. Find.