Pętla For Next w Excel VBA

Kurs Excel VBA - Pętla For Next

Kurs Excel VBA – Pętla For Next

1. Pętla For Next – informacje podstawowe

Pętla For Next jest kolejną pętlą, którą oferuje nam VBA w Excelu. W najprostszej postaci pętla umożliwia nam wprowadzenie z góry liczby powtórzeń instrukcji, która ma zostać wykonana. Dla przykładu spróbujmy wykorzystać naszą pętlę do wyświetlenia tekstu „Przykład pętli For Next” w komórkach od „A1” do „A10” w arkuszu danych Excela.

Sub ForNextExample()

Dim intRow As Integer

For intRow = 1 To 10
Cells(intRow, 1) = "Przykład pętli For Next"
Next

End Sub

Sam schemat działania wygląda następująco:

For licznik = start to koniec [Step interwal]
[instrukcje]
Next [licznik] 
  • For – słowo kluczowe, rozpoczyna pętle For Next
  • Licznik – określa liczbę powtórzeń pętli
  • start – Liczba początkowa licznika np 1
  • koniec – Liczba końcowa licznika np 10
  • [Step interwal] – ustawiamy go opcjonalnie, np gdy chcemy, aby pętla zwiększała się o inną liczbę niż 1 podczas powtórzenia.
  • [instrukcje] – Nasz blok kodu, który ma się wykonywać w ramach pętli
  • Next – wyraz kończący pętlę
  • [licznik] – wyraz opcjonalny. Oznacza tyle, że w ramach pętli zwiększać ma się licznik

 

2. Przykład pętli For Next

Wiemy już czym jest pętla For…Next. Spróbujmy wykonać nieco trudniejszy przykład z wykorzystaniem tej pętli. Naszym zadaniem będzie tak jak w poprzednich przykładach wyświetlenie serii liczb. Będą to liczby parzyste z zakresu od 0 do 100.

Sub ForNextExample2()

Dim intCounter As Integer

For intCounter = 1 To 100 Step 2
Cells(intCounter, 1) = intCounter - 1
Next

End Sub

W przykładzie wyświetliliśmy liczby parzyste z zakresu od 0 do 100. Wykorzystaliśmy także interwał Step w celu zwiększania licznika o 2 za każdym powtórzeniem pętli.Jak widzimy nasze liczby wprowadziły się do arkusza w najprostszy sposób, a więc w co drugą komórkę. Zrobiliśmy tak, by przetestować działanie interwału Step w naszej pętli. Przemodelujmy nasz kod, w ten sposób, by liczby parzyste wyświetliły się w wierszach następujących po sobie.

Sub ForNextExample2()

Dim intCounter As Integer

For intCounter = 1 To 51 Step 1
Cells(intCounter, 1) = (intCounter - 1) * 2
Next intCounter
End Sub

Podobnie jak w przypadku pętli Do Loop, pętlę For Next można zakończyć przed zaplanowanym wykonaniem wskazanym przez licznik. Używamy do tego frazy Exit For.

 

3. Zadania (Rozwiązanie możesz wpisać w komentarzu)

3.1 Stwórz tabliczkę mnożenia przy użyciu pętli For…Next

3.2 Stwórz prostą tabelkę z użyciem pętli For…Next, która generuje listę osób w formie osoba1, osoba2, osoba3 …itp. W drugiej kolumnie za pomocą funkcji RND() i pętli dopisz wiek osoby z przedziału 18 – 65. Lista powinna zawierać 50 pozycji.

Dodaj komentarz

Twój adres email nie zostanie opublikowany.