Jak znaleźć ostatni wypełniony wiersz w Excel VBA

Odszukiwanie numeru ostatniego wiersza w tabeli

Często w VBA operując na danych ujętych w tabelach mamy konieczność dodania do tabelki Excela kolejnego wiersza/rekordu z danymi. By zrobić to sprawnie, zwykle jest konieczność znalezienia lokalizacji ostatniego niepustego wiersza. By znaleźć ostatni wypełniony rekord w arkuszu możemy skorzystać z prostego kodu VBA:

Sub LastRow()
Dim intLastRow As Integer
intLastRow = Range("A1").End(xlDown) + 1
MsgBox intLastRow
End Sub

Wyżej zapisany kod umożliwia nam poznanie numeru wiersza w kolumnie A1. Numer wiersza zwracany jest w oknie MsgBox. Sposób jest dobry o ile sprawdzenie następuje na kolumnie, która zawsze jest wypełniona. Dla przykładu jest to np kolumna identyfikujące id rekordu. W momencie, gdy niektóre z komórek wierszy są puste, bądź pomiędzy rekordami są całe puste wiersze możemy skorzystać z makra opartego o przerobione funkcjonalności znajdź w Excel.  Kod zamieszczony poniżej działa także w sytuacjach, gdy pomiędzy danymi są całe puste kolumny lub wiersze. Podobnie jak w pierwszym przykładzie, numer wiersza jest zwracany w oknie MsgBox.

Sub FindLastRow()

Dim rngCell As Range
Set rngCell = Cells.Find(What:="*", After:=Cells(1, 1), LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:= _
False, SearchFormat:=False) '.Activate
If Not rngCell Is Nothing Then MsgBox "Ostatni wiersz nr: " & rngCell.Row & " i ostatnia kolumna nr: " & rngCell.Column

End Sub

Warto zauważyć, że nasz przykład polega na modyfikacji makra funkcjonalności Znajdź/Zamień w Excel. Główna różnica polega na tym, że wyrażenie, którego szukamy w arkuszu zamieniamy na znak „*” reprezentujący każde możliwe wyrażenie.

Excel VBA - ostatni niepusty wiersz
Excel VBA – ostatni niepusty wiersz

W ten sposób znalazłeś dzięki VBA indeks ostatniego wiersza w tabeli. Plik Excel z powyższymi przykładami załączam poniżej:

excel_vba_ostatni_wiersz.xlsm

Jeśli szukasz podobnych przykładów praktycznego zastosowania VBA zapraszam do odwiedzenia tego działu. Zachęcam także do zapoznania się z działem kurs VBA online.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

13 komentarzy “Jak znaleźć ostatni wypełniony wiersz w Excel VBA”