VBA do następnego - Przewodnik dotyczący używania Excel VBA dla następnej instrukcji

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.

Interesujące artykuły...