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.

Najkrócej:

Najczęściej używany wzorzec to zejście od ostatniego wiersza arkusza w górę metodą End(xlUp).

Gotowy kod

Skopiuj makro

VBA
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 Sub
Dostosowanie

Co zmienić w kodzie?

01

Zmień "Dane" na nazwę swojego arkusza.

02

Zmień "A" na kolumnę, która zawsze jest wypełniona dla każdego rekordu.

03

Jeśli pierwszy wiersz jest nagłówkiem, wynik 1 może oznaczać brak danych.

Wyjaśnienie

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.

Uważaj na

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.