Pętle Excel VBA

Pętle można uznać za najlepiej działający komponent VBA, a także za serce Makra. Zwykle pomagają zmniejszyć liczbę wierszy w kodzie i wykonać pracę w kilka minut, co może zająć ludziom wiele godzin.

W życiu codziennym programista wymyśla takie przypadki, w których musi wielokrotnie uruchamiać ten sam zestaw kodu. Nazywa się to zapętlaniem. Oczywiście za każdym razem uruchomienie tego samego kodu da ten sam wynik z pewną ułamkową zmianą zmiennej. Pętla ma duży zestaw zalet, ale najważniejsza jest automatyzacja. Pomaga zautomatyzować te rzeczy.

Jeśli wcześniej nie korzystałeś ze skryptu VBA, możesz po prostu otworzyć skoroszyt programu Excel i nacisnąć klawisze Alt + F11 . Otworzy projekt VBA.

Wejdźmy głębiej do środka.

Załóżmy, że chcemy wydrukować od 1 do 10 liczb za jednym razem. Możemy to zrobić za pomocą następującego kodu.

Kod:

 Sub loop1 () Debug. Drukuj 1 Debuguj. Drukuj 2 Debuguj. Drukuj 3 Debuguj. Drukuj 4 Debuguj. Drukuj 5 Debuguj. Drukuj 6 Debuguj. Drukuj 7 Debuguj. Drukuj 8 Debuguj. Drukuj 9 Debuguj. Drukuj 10 Zakończ Sub. 

Jeśli możesz szybko przejść przez kod, dodałem Debug. Wydrukuj jeden po drugim, aby wydrukować liczby od 1 do 10. Po uruchomieniu kodu możemy zobaczyć wynik w Natychmiastowym oknie. Aby otworzyć okno natychmiastowe, naciśnij Ctrl + G w dowolnym miejscu w Excelu.

Uruchom kod za pomocą klawisza F5 lub ręcznie, jak pokazano na poniższym zrzucie ekranu. Sprawdźmy więc wynik tego kodu.

Rodzaje pętli VBA w programie Excel

Będąc programistą, nigdy nie będziesz chętny do pisania powtarzających się wierszy, które mają dać taki sam rezultat. Chcesz to zautomatyzować. Dlatego zobaczymy różne Pętle Excel VBA i sposób ich użycia na kilku przykładach.

Wpisz nr 1 - VBA dla następnej pętli

W przypadku kolejnej pętli VBA pozwala nam na przechodzenie przez zakres komórek i wykonywanie tego samego zadania dla każdej komórki określonej w pętli. W tym miejscu należy podać numer początkowy i końcowy.

kod:

 Sub loop 1 () For i = 1 To 10 Cells (i, 1). Value = i Next i End Sub 

Ten kod daje dokładnie takie same wyniki jak poprzedni. Jednak najważniejszą rzeczą w tym kodzie jest zmniejszenie liczby wierszy. Zredukowaliśmy 12-liniowy kod do zaledwie kodu z 5 liniami.

W tym kodzie pętla 1 jest nazwą makra. Pętla for zaczyna się od i = 1, wypisuje wartość i (tj. 1) pod komórką excela, a następnie przechodzi do początku pętli for i powoduje, że i = 2 drukuje wartość i (tj. 2) w następnej komórce i tak dalej, aż kod osiągnie ostatnią wartość, tj. 10. Gdy tylko kod osiągnie ostatnią wartość i (10), kod sam się kończy z powodu braku dostępności jakiejkolwiek liczby całkowitej powyżej 10.

Uruchom kod za pomocą klawisza F5 lub ręcznie. Możesz zobaczyć wynik jak poniżej.

Typ 2 - VBA dla pętli z krokiem do przodu

Jak widzieliście w poprzednim przykładzie pętli, miałem wzrost o 1 krok. Domyślnie wartość kroku jest uważana za 1 w VBA. Czy można jednak ustawić własny krok? Załóżmy, że chcesz widzieć tylko liczby parzyste od 1 do 20. Jak to zrobić?

Jak sugeruje matematyka ogólna, liczby znajdujące się w odległości 2 od siebie (zaczynając od pierwszej liczby parzystej 2) są uważane za liczby parzyste, prawda?

Zastosujemy tę samą logikę. Zobacz poniżej kod w celach informacyjnych.

Kod:

 Sub ForwardStep () For i = 2 To 20 Step 2 Cells (i, 1) .Value = i Next i End Sub 

Dla wartości rozpoczynających się od 2 ta pętla umożliwia wydrukowanie 2, 4, 6, 8… 20 w kolejnych komórkach programu Excel. Krok 2 wyraźnie dał tak, że począwszy od numeru 2, kod przeskoczy do następnej liczby wraz z krokiem 2 (tj. Wydrukowane zostaną 4) i tak dalej. Proces ten będzie kontynuowany, dopóki 20 nie pojawi się w komórce. Gdy tylko 20 pojawi się w komórce, pętla zostanie automatycznie zakończona.

Uruchom kod za pomocą klawisza F5 lub ręcznie. Możesz zobaczyć wynik jak poniżej.

Typ 3 - VBA dla pętli z krokiem wstecz

Tak samo jak w przypadku pętli z krokiem do przodu, możemy użyć pętli z krokiem do tyłu. Na przykład, co jeśli ustawimy nasz krok wstecz na -2 i uruchomimy pętlę for od wartości 20 do 2?

Zobaczymy jak to działa.

kod:

 Sub BackwardStep () For i = 20 To 2 Step -2 Debug. Wydrukuj i Dalej i Zakończ Sub 

Po uruchomieniu kodu możemy zobaczyć wynik w Natychmiastowym oknie. Aby otworzyć okno natychmiastowe, naciśnij Ctrl + G w dowolnym miejscu w Excelu.

Ponieważ podaliśmy punkt początkowy pętli jako 20, a punkt końcowy jako 2 z krokiem -2, pętla zaczyna się od 20, a na etapie -2 przechodzi do następnej liczby, czyli -18 i tak dalej. Gdy tylko pętla osiągnie wartość 2, zostanie automatycznie zakończona, a ostatnia wartość zostanie wydrukowana jako 2.

Typ 4 - VBA Nested For Loop

Możemy również zagnieździć pętlę For. Nie zaleca się jednak zagnieżdżania tej samej pętli w kodzie więcej niż trzykrotnie (można to uznać za błąd w logice).

Zobacz poniższy kod zagnieżdżonej pętli.

Kod:

 Sub NestedFor () For i = 1 To 10 For j = 1 To 2 Cells (i, j). Value = i * j Next j Next i End Sub 

W tym przykładzie, dla i = 1 i j = 1, makro umieszcza wartość i * j (1 * 1) w przecięciu wiersza i = 1 i kolumny j = 1 (tj. Komórki A1) i przechodzi do następnej wartości j (2) zachowując i = 1. W przecięciu rzędu i = 1 i kolumny j = 2 (tj. komórki B1) makro wprowadza wartość I * j (1 * 2). Pętla ignoruje następną wartość j, ponieważ j zmienia się tylko od 1 do 2 i przechodzi do następnej wartości i.

Dla i = 2 i j = 1 makro wprowadza wartość i * j (2 * 1) do przecięcia drugiego rzędu i pierwszej kolumny (tj. Komórki A2) i kontynuuje. Aż do zakresu i i j.

Uruchom kod za pomocą klawisza F5 lub ręcznie, jak pokazano na poniższym zrzucie ekranu. Możesz zobaczyć wynik jak poniżej.

Typ # 5 - VBA Do While Loop

Pętla Do While jest jedną z najciekawszych pętli w VBA. Pozwala to sprawdzić warunek i zapisać wynik (DO), gdy określony warunek lub zestaw warunków zostanie spełniony (lub warunek / s jest / są PRAWDĄ).

Zobacz kod poniżej:

Kod:

 Sub do_whileloop () Dim i As Integer i = 1 Do While i <= 10 komórek (i, 1). Wartość = i * ii = i + 1 koniec pętli Sub 

Ta pętla działa jak poniżej:

Dla wartości i od 1 (i = 1 początkowo) do 10 oblicza i * i (tj. Wartość kwadratową dla każdej liczby całkowitej i) i wprowadza ją odpowiednio w komórce 1 do 10. Wyjście to nic innego jak kwadratowe wartości liczb całkowitych od 1 do 10. Przyjrzyj się bliżej pętli pod tym kodem. Dodanie go jest obowiązkowe, w przeciwnym razie system zgłosi błąd.

Uruchom kod za pomocą klawisza F5 lub ręcznie. Możesz zobaczyć wynik jak poniżej.

Oto niektóre przykłady pętli VBA, które starałem się zachować w tym artykule. Mam nadzieję, że będzie wystarczająco precyzyjny, aby wyczyścić niektóre pojęcia.

Rzeczy do zapamiętania

  • Korzystając z pętli for z krokiem wstecznym, upewnij się, że numer początkowy musi być większy niż numer końcowy i odwrotnie.
  • W sekcji Do while loop upewnij się, że używasz Loop do zamknięcia do podczas przed zakończeniem całego kodu VBA. W przeciwnym razie system zgłasza błąd kompilatora z komunikatem o błędzie „Wykonaj bez pętli”.

Możesz pobrać ten szablon Excel VBA Loops tutaj - Szablon Excel VBA Loops

Polecane artykuły

To był przewodnik po Excel VBA Loops. Tutaj omówiliśmy Rodzaje pętli Excel VBA i jak ich używać wraz z kilkoma praktycznymi przykładami i szablonem Excela do pobrania. Możesz także przejrzeć nasze inne sugerowane artykuły -

  1. Funkcja VBA w programie Excel
  2. Funkcja VBA VLOOKUP
  3. Skróty klawiaturowe Excel
  4. Formuła percentylowa Excel

Kategoria: