VBA While Loop

VBA While Loop to ważna i potężna koncepcja, którą można było zobaczyć w większości języków programowania. Jeśli opanujesz tę koncepcję w VBA, będziesz w stanie przygotować potężne skrypty, które działają z danymi arkusza kalkulacyjnego na zupełnie inne i wygodne sposoby. W tym artykule przygotuj się na odkrywanie świata różnych pętli while wraz z wieloma przykładami nadchodzącymi z pomocą.

Celem pętli While jest powtórzenie określonego bloku instrukcji pod warunkiem spełnienia warunku. Mówiąc dokładniej, pętla while powtarza odpowiednią instrukcję, gdy warunek jest spełniony. Gdy warunek stanie się False (nie spełnia), pętla kończy się.

Istnieją dwa typy pętli while w Microsoft Excel VBA:

  • Pętla VBA While-Wend
  • VBA Do-While Loop

Istnieje pętla VBA While-Wend, aby kod był zgodny ze starszą wersją kodów. VBA Do-While jest zaktualizowaną wersją pętli while, która jest bardziej elastyczna i ustrukturyzowana w porównaniu z poprzednią i jest zalecana do użytku przez społeczność Microsoft.

Na wszelki wypadek zastanawiasz się, co oznacza Wend, jest to krótka forma While End i działa tak samo.

Przykłady VBA While Loop

Zanurzmy się głęboko w przewodniku krok po kroku różnych rodzajów VBA While Loops.

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

Przykład 1

Pętla VBA While-Wend

Składnia:

Weźmy przykład, aby zobaczyć to w lepszy sposób.

  • Zdefiniuj podprocedurę, aby utworzyć makro w nowym module.

Kod:

 Sub WhileEx1 () End Sub 

  • Ustaw dwie zmienne Liczba na Jeden i Suma na Zero.

Kod:

 Sub WhileEx1 () Number = 1 Sum = 0 End Sub 

  • Ustaw warunek while dla zmiennej Number.

Kod:

 Sub WhileEx1 () Number = 1 Sum = 0 While Number <= 10 End Sub 

  • Dodaj instrukcje do wykonania dla tego warunku while.

Kod:

 Sub WhileEx1 () Number = 1 Sum = 0 While Number <= 10 Sum = Sum + Number Number = Number + 1 End Sub 

  • Dodaj sumę debugowania. Suma wydruku, aby suma pierwszych 10 liczb naturalnych mogła być drukowana jedna po drugiej w Natychmiastowym oknie.

Kod:

 Sub WhileEx1 () Number = 1 Sum = 0 While Number <= 10 Sum = Sum + Number Number = Number + 1 Debug. Drukuj Sum End Sub 

  • Na koniec zakończ pętlę While instrukcją Wend.

Kod:

 Sub WhileEx1 () Number = 1 Sum = 0 While Number <= 10 Sum = Sum + Number Number = Number + 1 Debug. Print Sum Wend End Sub 

  • Naciśnij F5 lub przycisk Uruchom, aby uruchomić ten kod i zobaczyć dane wyjściowe.

W tym kodzie zmienna sumy jest ustawiona na zero. Tak więc za każdym razem, gdy liczba jest zwiększana o 1, aż osiągnie 10 (za pomocą pętli while), zmienna sum doda poprzednią sumę z bieżącą liczbą i wyświetli ją pod bezpośrednim oknem rząd po rzędzie lub sumę krokową, którą możesz powiedzieć.

Przykład nr 2

VBA Do-While Loop

Wykonaj pętlę, gdy warunek jest sprawdzany przed rozpoczęciem pętli

Istnieją dwa sposoby wykonania pętli while do.

  • Możesz dodać warunek przed rozpoczęciem pętli (jest taki sam jak pętla While-Wend). W tym przypadku nie byłoby iteracji pętli, jeśli warunek nie powiedzie się po raz pierwszy.
  • Możesz dodać warunek na końcu pętli, aby to sprawdzić. W takim przypadku nastąpi co najmniej jedna iteracja pętli, zanim warunek się nie powiedzie.

Składnia:

Weźmy jeden przykład, aby wszystko było jaśniejsze.

  • Wstaw nowy moduł i zdefiniuj nową podprocedurę w celu zdefiniowania makra.

Kod:

 Sub WhileEx2 () End Sub 

  • Zdefiniuj nową zmienną I jako liczbę całkowitą. I zainicjuj jego wartość na 1.

Kod:

 Sub WhileEx2 () Dim i Dim Integer i = 1 End Sub 

  • Użyj polecenia Do-While, aby dodać warunek na początku pętli.

Kod:

 Sub WhileEx2 () Dim i Dim Integer i = 1 Do While i <= 10 End Sub 

  • Dodaj instrukcje do wykonania, dopóki warunek jest spełniony. Dodaj poniższy wiersz kodu do makra.

Kod:

 Sub WhileEx2 () Dim i Dim Integer i = 1 Do While i <= 10 komórek (i, 1). Wartość = i * i End Sub 

Ta instrukcja pozwala i-temu wierszowi pierwszej kolumny przechowywać wartość kwadratową liczb.

  • Dodaj jeszcze jedną instrukcję, która pozwala na zwiększenie wartości o 1 o 1 przy każdej iteracji pętli.

Kod:

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

  • Uzupełnij tę pętlę, dodając instrukcję Loop na końcu kodu.

Zobaczmy obejście tego kodu:

Dla wartości i od 1 (początkowo i = 1) do 10 oblicza i * i (tj. Wartość do kwadratu dla każdej liczby całkowitej i) i wprowadza ją odpowiednio w wierszach 1–10 w kolumnie 1 (tj. W kolumnie A) . Wyjście to nic innego jak kwadratowe wartości liczb całkowitych od 1 do 10.

  • Uruchom ten kod, naciskając klawisz F5 lub Run i zobacz dane wyjściowe.

Możesz zobaczyć wartości kwadratowe liczb naturalnych od 1 do 10, które są przechowywane w każdej komórce osobno w kolumnie A.

Przykład nr 3

Pętla Do-While, gdy warunek jest sprawdzany na końcu pętli

Składnia:

Zobaczmy przykład, aby lepiej zobaczyć zapętlenie.

  • Wstaw nowy moduł i zdefiniuj nową podprocedurę do przechowywania makra.

Kod:

 Sub WhileEx3 () End Sub 

  • Zdefiniuj nową liczbę całkowitą i tak samo jak w poprzednim przykładzie i przypisz do niej wartość początkową.

Kod:

 Sub WhileEx3 () Dim i Dim Integer i = 1 End Sub 

  • Użyj warunku Do, aby dodać instrukcje do wykonania, o ile warunek jest spełniony.

Kod:

 Sub WhileEx3 () Dim i Dim Integer i = 1 Do Cells (i, 2). Wartość = i * ii = i + 1 End Sub 

Zaleca się stosowanie białych znaków (klawisz Tab) jako wcięcia pokazanego w powyższym kodzie, co pozwala na płynne działanie kodu, a także określa dobry format struktury kodu.

  • Użyj Loop while, aby dodać warunek do sprawdzenia dla każdej instrukcji do wykonania.

Kod:

 Sub WhileEx3 () Dim i Dim Integer i = 1 Do Cells (i, 2). Value = i * ii = i + 1 Loop While i <= 10 End Sub 

  • Uruchom ten kod, naciskając ręcznie klawisz F5 lub Run i zobacz dane wyjściowe.

Zobaczysz wynik, jak pokazano na powyższym rysunku.

Jak działa ten kod w backend?

System mnoży wartość i (zaczynając od 1) do siebie i przechowuje w drugiej kolumnie (Komórki (i, 2)) dla każdego wiersza jeden po drugim. Kod przestaje być wykonywany, gdy tylko wartość zmiennej i osiągnie 10. Dane wyjściowe mogą być takie same, co logicznie oznacza, że ​​oba kody działają tak samo. Ale główna różnica polega na kompilacji kodu. W ostatnim przykładzie warunek już istniał, a system wiedział do jakiej liczby musi przejść. Jednak w tym kodzie system nie jest świadomy tego warunku w momencie wykonywania instrukcji i uruchamia iterację jeden po drugim. Dopóki warunek jest fałszywy, kod przestał działać.

O czym należy pamiętać o VBA While Loop

  • Pętla While-Wend jest przestarzała i ma być po prostu kompatybilna ze starszymi wersjami kodów. Zamiast tego należy użyć pętli Do-While.
  • Pętla Do-While jest bardziej elastyczna i ma lepszą strukturę w porównaniu do pętli While-Wend.
  • Pętli „do-while” można używać na dwa sposoby: w jednym przypadku można najpierw dodać warunek do sprawdzenia, a następnie dodać instrukcje spełniające warunek. W inny sposób możesz najpierw dodać instrukcje, a później dodać warunek do sprawdzenia.
  • Zaleca się stosowanie wcięć w pętlach, aby kod był bardziej dynamiczny i łatwiejszy do odczytania.

Polecane artykuły

To był przewodnik po VBA Do While Loop. Tutaj omówiliśmy, jak korzystać z Excel VBA Do While Loop wraz z kilkoma praktycznymi przykładami i szablonem Excela do pobrania. Możesz także przejrzeć nasze inne sugerowane artykuły -

  1. Jak korzystać z funkcji ZNAJDŹ w Excelu?
  2. Jak korzystać z funkcji VBA TRIM?
  3. Tablice VBA | Kompletny samouczek
  4. Jak korzystać z VBA Select Case?

Kategoria: