VBA — pętla po wierszach w Excelu
Praktyczna pętla For w VBA przechodząca po wszystkich rekordach od drugiego do ostatniego wiersza. Gotowy przykład.
Najczęściej najpierw wyznaczasz ostatni wiersz, a następnie przechodzisz przez rekordy pętlą For.
Skopiuj makro
Sub PetlaPoWierszach()
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long
Set ws = ThisWorkbook.Worksheets("Dane")
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
For i = 2 To lastRow
If ws.Cells(i, "C").Value = "" Then
ws.Cells(i, "C").Value = "BRAK"
End If
Next i
End SubCo zmienić w kodzie?
Pętla zaczyna się od 2, ponieważ zakładamy nagłówki w pierwszym wierszu.
Kolumna A służy do ustalenia końca danych, a kolumna C jest modyfikowana.
Warunek wewnątrz If możesz zastąpić własną logiką.
Jak działa ten kod?
For i = 2 To lastRow wykonuje kod po kolei dla każdego numeru wiersza.
Cells(i, "C") oznacza komórkę w aktualnym wierszu i kolumnie C.
Next i przechodzi do następnego rekordu aż do ostatniego wiersza.
Najczęstsze błędy
Pętle po komórkach są proste, ale przy setkach tysięcy wierszy mogą być wolniejsze niż praca na tablicach.
Nie używaj całej kolumny jako zakresu pętli, jeśli wystarczy zakres faktycznie zajęty przez dane.
Przy zmianie wartości w arkuszu rozważ wyłączenie ScreenUpdating i zdarzeń dla większych operacji.