For Next Loop w Excel VBA - Przewodnik dla początkujących z przykładami

W języku VBA pętla jest używana, gdy trzeba wielokrotnie wykonać to samo zadanie, aż do spełnienia warunku (lub do spełnienia warunku).

W tym samouczku dowiesz się, jak korzystać z For Next Loop w Excel VBA.

Jeśli interesuje Cię nauka VBA w prosty sposób, zajrzyj na mój Szkolenie Excel VBA online.

Używanie FOR NEXT Loop w Excel VBA

Pętla „For Next” działa, uruchamiając pętlę określoną liczbę razy.

Na przykład, jeśli poproszę Cię o ręczne dodanie liczb całkowitych od 1 do 10, dodałbyś pierwsze dwie liczby, następnie dodałbyś trzecią liczbę do wyniku, a następnie dodałbyś do wyniku czwartą liczbę, tak dalej…

Prawda?

Ta sama logika jest używana w pętli For Next w VBA.

Określasz, ile razy chcesz uruchomić pętlę, a także określasz, co ma robić kod za każdym razem, gdy pętla jest uruchamiana.

Oto format pętli For Next, którego musisz użyć w VBA, aby dodać pierwsze 10 liczb całkowitych.

Dla i = 1 do 10 [dodaj i-tą dodatnią liczbę całkowitą do wyniku] Dalej i

Przyjrzyjmy się teraz kilku przykładom wykorzystania pętli For Next.

Przykład 1: Dodawanie pierwszych 10 dodatnich liczb całkowitych

Poniżej znajduje się kod, który doda pierwsze 10 dodatnich liczb całkowitych za pomocą pętli For Next. Następnie wyświetli okno komunikatu pokazujące sumę tych liczb.

Sub AddNumbers() Dim Suma jako Integer Dim Licz jako Integer Suma = 0 Dla Licznika = 1 do 10 Suma = Suma + Licznik Następny Licznik MsgBox Suma Koniec Sub

W tym kodzie wartość Total jest ustawiona na 0 przed przejściem do pętli For Next.

Gdy dostanie się do pętli, przechowuje całkowitą wartość po każdej pętli. Tak więc po pierwszej pętli, gdy licznik wynosi 1, wartość „Total” wynosi 1, a po drugiej pętli wynosi 3 (1+2) i tak dalej.

I na koniec, kiedy pętla się kończy, a Total ma sumę pierwszych 10 dodatnich liczb całkowitych, MsgBox po prostu wyświetla wynik w oknie komunikatu.

Kliknij tutaj, aby pobrać przykładowy plik

Przykład 2: Dodanie pierwszych 5 parzystych liczb całkowitych dodatnich

Aby zsumować pierwsze pięć parzystych dodatnich liczb całkowitych (tj. 2,4,6,8 i 10), potrzebujesz podobnego kodu z warunkiem uwzględniania tylko liczb parzystych i ignorowania liczb nieparzystych.

Oto kod, który to zrobi:

Sub AddEvenNumbers() Dim Total As Integer Dim Licz jako Integer Suma = 0 Dla Count = 2 do 10 Krok 2 Total = Total + Licznik Następne Licznik MsgBox Total End Sub

Zauważ, że rozpoczęliśmy wartość Count od 2, a także użyliśmy kroku 2 w składni For.

Krok 2 powiedziałby kodowi, aby zwiększał wartość „Count” o 2 za każdym razem, gdy uruchamiana jest pętla. Tak więc wartość Count zaczyna się od 2, a następnie staje się 4, 6, 8 i 10, gdy wystąpi pętla.

UWAGA: Innym sposobem na zrobienie tego może być uruchomienie pętli od 1 do 10 i sprawdzenie wewnątrz pętli, czy liczba jest parzysta, czy nieparzysta. Jednak użycie Step w tym przypadku jest bardziej wydajnym sposobem, ponieważ nie wymaga wykonania pętli 10 razy, a tylko 5 razy.

Kliknij tutaj, aby pobrać przykładowy plik.

Przykład 3: Pobierz część numeryczną z ciągu alfanumerycznego

Pętla „For Next” może być również używana do przechodzenia przez każdy znak w ciągu.

Na przykład, jeśli masz listę ciągów alfanumerycznych, możesz użyć pętli For Next, aby wyodrębnić z niej liczby (jak pokazano poniżej):

Oto kod, który tworzy niestandardową funkcję w VBA, której można używać jak każdej innej funkcji arkusza.

Wyodrębnia część numeryczną z ciągu alfanumerycznego.

Funkcja GETNUMERIC(Cl As Range) Dim i As Integer Dim Wynik jako Long For i = 1 To Len(Cl) If IsNumeric(Mid(Cl, i, 1)) Wtedy Wynik = Wynik & Mid(Cl, i, 1) End If Next i GetNumeric = Wynik End Function

W tym kodzie liczba uruchomień pętli zależy od długości ciągu alfanumerycznego (wykorzystuje funkcję LEN do znalezienia długości ciągu).

Musisz umieścić tę funkcję w oknie kodu modułu, a następnie możesz jej używać jak każdej innej funkcji arkusza.

Kliknij tutaj, aby pobrać przykładowy plik.

Przykład 4: Uzyskiwanie liczb losowych z wybranego zakresu

Załóżmy, że chcesz szybko wpisać losowe liczby w wybranych komórkach, tutaj kod, który to zrobi.

Sub RandomNumbers() Dim MyRange As Range Dim i As Integer, j As Integer Ustaw MyRange = Wybór For i = 1 To MyRange.Columns.Count For j = 1 To MyRange.Rows.Count MyRange.Cells(j, i) = Rnd Dalej j Dalej i Koniec Sub

To jest przykład zagnieżdżonej pętli For Next, w której pętla For jest używana w pętli For.

Załóżmy, że wybierasz 10 wierszy i 4 kolumny, wartość i zmienia się od 1 do 4, a wartość j od 1 do 10.

Gdy uruchomiona jest pierwsza pętla For, wartość i wynosi 1. Następnie przechodzi do drugiej pętli For, która jest wykonywana 10 razy (dla każdego wiersza).

Po 10-krotnym wykonaniu drugiej pętli For następuje powrót do pierwszej pętli For, w której teraz wartość i wynosi 2. Kolejna pętla For jest uruchamiana 10 razy.

Tak działa zagnieżdżona pętla For Next.

Kliknij tutaj, aby pobrać przykładowy plik.

Możesz również polubić następujące samouczki Excel VBA:

  • Praca z komórkami i zakresami w Excel VBA.
  • Praca z Arkuszami w Excel VBA.
  • Praca ze skoroszytami przy użyciu VBA.
  • Korzystanie z instrukcji IF Then Else w VBA.
  • Excel VBA Wybierz przypadek.
  • Tworzenie funkcji zdefiniowanej przez użytkownika w programie Excel.
  • Wydarzenia Excel VBA - łatwy (i kompletny) przewodnik
  • Jak nagrać makro w programie Excel.
  • Jak uruchomić makro w programie Excel.
  • Jak utworzyć dodatek w programie Excel.
  • Jak zapisywać i ponownie używać makra przy użyciu skoroszytu makr osobistych programu Excel.
  • Przydatne przykłady makr Excel dla początkujących.
  • Korzystanie z funkcji InStr w VBA.

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave