Jak tworzyć proste pętle (For Next) w VBA do powtarzalnych zadań?

Pętle For...Next są fundamentem automatyzacji w VBA (Visual Basic for Applications). Pozwalają one na wielokrotne wykonanie bloku kodu określoną liczbę razy. Jest to idealne rozwiązanie do formatowania zakresów, czyszczenia danych, czy iterowania przez wiersze lub kolumny.

1. Podstawowa składnia pętli For...Next

Pętla For...Next wymaga zdefiniowania licznika (zmiennej) oraz wartości początkowej i końcowej.

For Licznik = WartośćPoczątkowa To WartośćKońcowa
    ' Blok kodu do wykonania
    ' np. formatowanie, obliczenia
Next Licznik
        

2. Przykład 1: Proste formatowanie wierszy

Załóżmy, że chcesz zastosować kolor tła co drugiemu wierszowi w zakresie od wiersza 2 do 11, aby poprawić czytelność (paski zebry).

  1. Otwórz Edytor VBA (Alt + F11).
  2. Wstaw nowy moduł (Wstaw -> Moduł).
  3. Wklej poniższy kod:
Sub PaskiZebry()
    ' Zmienna 'i' będzie naszym licznikiem wierszy
    Dim i As Integer
    
    ' Pętla od wiersza 2 do 11
    For i = 2 To 11
        ' Sprawdzamy, czy numer wiersza (i) jest parzysty (MOD 2 = 0)
        If i Mod 2 = 0 Then
            ' Jeśli parzysty, kolorujemy cały wiersz
            Rows(i).Interior.Color = RGB(220, 220, 220) ' Jasnoszary kolor
        End If
    Next i
    
    MsgBox "Formatowanie zakończone!"
End Sub
        

3. Przykład 2: Pętla z krokiem (Step)

Opcjonalny argument Step pozwala kontrolować, o ile zwiększa się licznik w każdej iteracji. Domyślnie Step wynosi 1.

Jeśli chcemy sformatować tylko co trzeci wiersz (np. 3, 6, 9), możemy użyć Step 3:

Sub FormatujCoTrzeciWiersz()
    Dim Licznik As Integer
    
    ' Pętla startuje w wierszu 3, idzie do 18, co 3 wiersze
    For Licznik = 3 To 18 Step 3
        ' Kolorujemy tło
        Rows(Licznik).Interior.Color = RGB(255, 255, 0) ' Żółty
    Next Licznik
End Sub
        
Uwaga na pętle wsteczne: Możesz używać kroku ujemnego (Step -1) do iterowania wstecz. Jest to przydatne, gdy musisz usuwać wiersze, ponieważ usuwanie wierszy w kolejności rosnącej zmienia numery wierszy i może spowodować pominięcie danych.

4. Przykład 3: Łączenie pętli z komórkami (Cells)

Aby odwołać się do komórek w pętli, najlepiej jest użyć obiektu Cells, ponieważ pozwala on na użycie zmiennej (licznika) jako numeru wiersza lub kolumny. Składnia: Cells(numer_wiersza, numer_kolumny).

Chcemy wpisać "OK" do komórki w kolumnie D (kolumna 4) dla wierszy od 5 do 15:

Sub DodajStatus()
    Dim i As Integer
    
    For i = 5 To 15
        ' Odwołanie do komórki w i-tym wierszu, kolumna 4 (D)
        Cells(i, 4).Value = "OK - Przetworzono"
        
        ' Pogrubienie komórki w kolumnie C
        Cells(i, 3).Font.Bold = True
    Next i
End Sub
        
Podsumowanie:

Pętla For i = 1 To 10: ... Next i wykona kod 10 razy, a wartość zmiennej i będzie dynamicznie zmieniać się z 1 na 10, umożliwiając Ci odwołanie się do kolejnych elementów w arkuszu za pomocą Cells(i, ...).

Komentarze

Popularne posty z tego bloga

Analiza danych z użyciem Power Query w Excelu

Analiza statystyczna za pomocą wbudowanych funkcji Excela

Importowanie Danych z Innych Aplikacji do Excela