Pętla For Next w Excel VBA 10


1. Pętla For Next VBA – informacje podstawowe

Pętla For Next VBA jest kolejną pętlą, którą poznamy. 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.

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

  • 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 VBA. 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.

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.

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

Kurs Excel VBA - Pętla For Next VBA

Kurs Excel VBA – Pętla For Next VBA

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.

10 komentarzy do “Pętla For Next w Excel VBA

    • Iza

      Sub PetlaForNextZadanie1()
      ‘3.1 Stwórz tabliczkę mnożenia przy użyciu pętli For…Next

      Dim intRow As Integer
      Dim intColumn As Integer

      For intColumn = 1 To 10

      For intRow = 1 To 10
      Cells(intRow, intColumn) = intRow * intColumn
      Next

      Next

      End Sub

  • Mateusz

    Takie cudo wyskrobalem

    Sub Ludzie()

    Dim intCounter As Integer
    Dim intColumn As Integer
    Dim intRow As Integer

    ‘wstawiamy naglówki kolumn
    Cells(1, 1) = “Osoba”
    Cells(1, 2) = “Wiek”

    intCounter = 1

    For intRow = 1 To 50
    Cells(intRow + 1, 1) = “osoba” & intCounter * intRow
    Next

    intCounter = 1
    intRow = 0

    For intRow = 1 To 50
    Cells(intRow + 1, 2) = Int((65 – 18 + 1) * Rnd + 18) ‘Calkowita liczba losowa od 90kdo 100k

    Next

    End Sub

  • Michał

    Sub osoby_wiek()
    Dim intRow As Integer
    Dim intwiek As Integer

    Cells(1, 1) = “Osoba”
    Cells(1, 2) = “Wiek”

    For intRow = 2 To 51
    Cells(intRow, 1) = “Osoba” & intRow – 1
    Cells(intRow, 2) = Int(Rnd * (65 – 18) + 18)
    Next

    End Sub

  • Piekny Wojciech

    Sub lista_osob()

    Dim lista As Byte
    Dim wiek As Byte

    For lista = 1 To 50
    Cells(lista, 1) = “osoba” & lista
    wiek = 1
    Do Until wiek >= 18 And wiek <= 65
    wiek = Fix(Rnd() * 100)
    Cells(lista, 2) = wiek
    Loop
    Next

    End Sub

  • Tomo G

    Sub osobywiek()
    Dim i As Integer
    For i = 1 To 50
    Cells(i, 1) = “osoba” & i
    Cells(i, 2) = Int(18 + 47 * Rnd())
    Next
    End Sub

  • Sylwek

    Sub tabliczka_mnozenia()
    Dim a As Integer
    Dim b As Integer

    For a = 1 To 10
    For b = 1 To 10
    Cells(a, b) = a * b
    Next
    Next

    End Sub

  • Tomasz

    Sub procka2()

    Dim counter As Integer

    For counter = 1 To 50

    Cells(counter, 1) = “osoba” & counter
    Cells(counter, 1).Select
    ActiveCell.Offset(0, 1).Value = WorksheetFunction.RandBetween(18, 65)

    Next counter

    End Sub