Excel VBA dla następnej pętli
Pętla VBA For Next jest pętlą, która jest używana wśród wszystkich języków programowania, w tej pętli występuje kryterium po instrukcji for, dla którego kod zapętla się w pętli do momentu osiągnięcia kryteriów i gdy kryteria zostaną osiągnięte, kieruje następna instrukcja procedura do następnego kroku kodu.
Pętla „For Next” jest jedną z tych pętli, która jest używana bardzo często niż inne pętle w kodowaniu VBA. Pętle pomogą nam powtórzyć ten sam rodzaj zadania dla określonych komórek, aż warunek będzie TRUE.
FOR LOOP przechodzi przez zakres komórek i wykonuje określone zadanie, aż warunek osiągnie wartość TRUE. Na przykład, jeśli chcesz przejść przez pierwsze 10 komórek i wstawić numery seryjne zwiększone o 1, możesz użyć pętli FOR NEXT.
Ta pętla wymaga zmiennej, aby ją uruchomić. Używając tej zmiennej, możemy dynamicznie odwoływać się do komórek.
Zawiera trzy parametry.
For Statement = punkt początkowy do punktu końcowego (wykonaj jakieś zadanie) Następna instrukcja
Od punktu początkowego pętla rozpocznie i wykona jakieś zadanie po zakończeniu zadania przejdzie do następnej pętli i ponownie wykona to samo zadanie w innej komórce. W ten sposób, dopóki nie osiągnie punktu końcowego, wykonuje określone zadanie.

Jak korzystać z VBA dla następnej pętli?
Załóżmy, że chcesz wstawić numery seryjne od 1 do 10 do komórek od A1 do A10. Oczywiście możemy wstawiać tak, jak pisząc dziesięć wierszy kodu.
Kod:
Sub For_Next_Loop_Example1 () Range („A1”). Value = 1 Range („A2”). Value = 2 Range („A3”). Value = 3 Range („A4”). Value = 4 Range („A5”) .Value = 5 Range ("A6"). Value = 6 Range ("A7"). Value = 7 Range ("A8"). Value = 8 Range ("A9"). Value = 9 Range ("A10") .Value = 10 End Sub
Ale co, jeśli chcę wstawić 100 numerów seryjnych? Oczywiście nie mogę napisać 100 linijek kodu tylko po to, aby wstawić numery seryjne. W tym miejscu pojawia się piękno pętli „FOR NEXT” . Wykonaj poniższe czynności, aby zminimalizować kod.
Krok 1: Najpierw musimy zdefiniować zmienną. Zadeklarowałem nazwę zmiennej o nazwie „Serial_Number” jako typ danych całkowitoliczbowych.
Kod:
Sub For_Next_Loop_Example2 () Dim Serial_Number As Integer End Sub
Krok 2: Teraz zamawiam zastosowanie pętli FOR NEXT, naszym celem jest wstawienie numerów seryjnych od 1 do 10, więc oznacza to, że nasza pętla musi działać dziesięć razy. Zatem instrukcja FOR LOOP powinna wyglądać tak.
Dla Serial_Number = 1 do 10
Następny numer_seryjny
Kod:
Sub For_Next_Loop_Example2 () Dim Serial_Number As Integer For Serial_Number = 1 do 10 Następny Serial_Number End Sub

Krok 3: Zastosowaliśmy pętlę. Teraz, gdy pętla zostanie zastosowana, musimy określić, co mamy zrobić wewnątrz pętli. Naszym celem jest tutaj wstawienie numerów seryjnych od 1 do 10. Więc zapisz kod jako Cells (Serial_Number, 1) .Value = Serial_Number.
Kod:
Sub For_Next_Loop_Example2 () Dim Serial_Number As Integer Dim Serial_Number = 1 do 10 komórek (Serial_Number, 1) .Value = Serial_Number Dim Serial_Number End Sub

Krok 4: Powód, dla którego podaliśmy Serial_Number we właściwości CELLS, ponieważ nie możemy tutaj określić numeru podstawowego dla odniesienia do wiersza. Za każdym razem, gdy działa pętla czasowa, chcę wstawić nowy numer seryjny do nowej komórki, a nie do tej samej komórki.
Krok 5: Uruchom kod wiersz po wierszu, naciskając klawisz F8.

Krok 6: Umieść kursor na zmiennej Serial_Number; pokazuje aktualną wartość Serial_Number.

W tym momencie wartość Serial_Number wynosi zero.
Krok 7: Naciśnij jeszcze raz klawisz F8, żółty kolor przejdzie do następnej linii kodu w VBA. Teraz umieść kursor na Serial_Number.

Teraz wartość Serial_Number jest równa jeden, ponieważ teraz pętla jest uruchamiana, a nasza pętla zaczyna się od 1, więc wartość zmiennej Serial_Number jest równa jeden.
Jeszcze jedną interesującą rzeczą jest to, że wszędzie tam, gdzie jest zmienna Serial_Number, jest ona równa 1.
Więc we właściwości komórek wymieniliśmy kod jako:
Komórki (Serial_Number, 1) .Value = Serial_Number
Oznacza to Cells (1, 1) .Value = 1. (Cells (1,1) oznacza Row1 & Column1.
Zatem w wierszu numer 1 i kolumnie numer 1 wartość powinna wynosić 1.
Krok 8: Teraz naciśnij F8 jeszcze raz i zobacz, co dzieje się w Row1 i Column1, czyli komórce A1.

Mamy więc 1 jako wartość, czyli wartość Serial_Number.
Krok 9: Teraz naciśnij jeszcze raz klawisz F8. Zwykle należy uruchomić następny kod, tj. Koniec podstacji. Ale tutaj wróci do „powyższej linii”.

Krok 10: Pamiętaj, że pętla zakończyła już pierwsze uruchomienie. Teraz wraca po raz drugi. Teraz umieść kursor na zmiennej Serial_Number i zobacz, jaka jest wartość.

Teraz zmienna Serial_Number jest równa 2, ponieważ pętla została już zwrócona po raz drugi.
Teraz, gdziekolwiek jest Serial_Number, tam jest wartość 2. Zatem kod linii:
Komórki (Serial_Number, 1) .Value = Serial_Number jest równe:
Cells (2, 1) .Value = 2. (Cells (2,1) oznacza Row2 & Column1, czyli komórkę A2).
Krok 11: Uruchom ten kod i zobacz wartość w komórce A2.

Tak więc otrzymaliśmy drugą wartość numeru seryjnego.
Krok 12: Teraz naciśnij klawisz F8. Powróci do powyższej linii, aby powtórzyć kod. Tym razem Serial_Number ma wartość 3.

Krok 13: Więc gdziekolwiek jest Serial_Number, jest tam 3.
Zatem kod linii: Cells (Serial_Number, 1) .Value = Serial_Number jest równy:
Cells (3, 1) .Value = 3. (Cells (3,1) oznacza Row3 & Column1, czyli komórkę A3).
Krok 14: Naciśnij F8, aby wykonać podświetloną linię i zobaczyć wartość w komórce A3.

Krok 15: Teraz naciskaj F8. Będzie nadal wstawiać numery seryjne. Wartość chwilowa zmiennej Serial_Number wynosi 10, zatrzyma pętlę i wyjdzie z pętli.
