Pętle Do VBA - Jak korzystać z pętli do wykonywania w programie Excel VBA?

Spisie treści

Excel VBA Do Loop

Pętla Do VBA , jest to zestaw instrukcji wewnątrz procedury podrzędnej, w której kod jest uruchamiany określoną liczbę razy, aż do osiągnięcia żądanych kryteriów lub przekroczenia dowolnego progu, lub można to bezpiecznie powiedzieć do momentu uzyskania wymaganych danych.

Podczas gdy pętla działa na logicznych wynikach, wykonuje pętlę w tę iz powrotem, gdy warunek testu ma wartość TRUE. W momencie, gdy warunek testu zwróci FALSE, zakończy pętlę. Pętle są sercem każdego języka programowania. W naszych artykułach pokazujemy, jak ważne są pętle i sposoby ich kodowania. W tym artykule pokażemy, jak korzystać z funkcji Do Loop.

Jak korzystać z pętli VBA Do Loop?

Przykład 1 - stan na końcu pętli

Widzieliśmy test stanu na początku pętli. We wcześniejszym kodzie widzieliśmy przykład wstawiania numerów seryjnych i taki był kod.

Kod:

Sub Do_While_Loop_Example1 () Dim k As Long k = 1 Do While k <= 10 Cells (k, 1) .Value = kk = k + 1 Loop End Sub

Teraz możesz uruchomić ten kod ręcznie lub za pomocą klawisza skrótu F5, aby zobaczyć wynik.

Ten kod wstawi numery seryjne od 1 do 10.

Ale możemy również przetestować stan na końcu pętli. Musimy użyć słowa „while” i testu warunku na końcu po słowie Loop.

Jedyną zmianą jest zastosowanie testu na końcu, jak pokazano poniżej.

Kod:

Sub Do_While_Loop_Example1 () Dim k As Long k = 1 Do Cells (k, 1) .Value = kk = k + 1 Loop While k <= 10 End Sub

W ten sposób możemy również przetestować warunek na końcu instrukcji pętli.

Uwaga: Kod zostanie uruchomiony, a następnie przetestuje warunek, aby powrócić do pętli jeszcze raz lub nie. Oznacza to, że najpierw uruchomi się, a później spróbuje sytuacji.

Przykład 2 - sumowanie z użyciem pętli Do While

Załóżmy, że w arkuszu Excela masz dane dotyczące sprzedaży i kosztów. Poniżej znajduje się zestaw fikcyjnych danych, które utworzyłem do obliczeń.

Teraz musimy uzyskać wartość zysku w kolumnie C. Stworzyłem już kod, który wykona za mnie pracę.

Kod:

Sub Do_While_Loop_Example2 () Dim k As Long Dim LR As Long k = 2 LR = Cells (Rows.Count, 1). End (xlUp) .Row Do While k <= LR Cells (k, 3) .Value = Cells (k , 1) + Cells (k, 2) k = k + 1 Loop End Sub
LR = Cells (Rows.Count, 1). End (xlUp) .Row

Ten kod zidentyfikuje ostatnio używany wiersz w pierwszej kolumnie. To sprawia, że ​​kod jest dynamiczny, ponieważ jeśli nastąpi dodanie lub usunięcie danych, dostosuje to mój czas sekwencji do uruchomienia pętli.

k = 2

Chcemy, aby obliczenia były wykonywane od drugiej komórki. Więc początkowa wartość k to 2.

Do While k <= LR

Jak powiedziałem, LR znajdzie ostatnio używany wiersz w pierwszej kolumnie. Oznacza to, że pętla będzie działać, gdy k jest <= wartości LR. W tym przypadku mam 10 rzędów, więc LR = 10.

Pętla będzie działać, dopóki wartość k nie osiągnie 10. Gdy kwota przekroczy 10 pętli, zostanie zatrzymana.

Teraz możesz uruchomić ten kod za pomocą klawisza skrótu F5 lub ręcznie, aby zobaczyć wynik.

Przykład # 3 - Exit Statement w Do While Loop

Możemy również wyjść z pętli, gdy warunek jest nadal tylko TRUE. Na przykład weź tutaj również powyższe dane.

Załóżmy, że nie chcesz wykonywać pełnych obliczeń, ale musisz tylko obliczyć pierwsze 5 wierszy zysku, a gdy tylko osiągnie 6- ty wiersz, chcesz wyjść z pętli. Można to zrobić za pomocą funkcji JEŻELI w programie Excel. Poniższy kod zawiera instrukcję wyjścia.

Kod:

Sub Do_While_Loop_Example3 () Dim k As Long Dim LR As Long k = 2 LR = Cells (Rows.Count, 1) .End (xlUp) .Row Do While k 6 Then Exit Do Cells (k, 3). Value = Cells ( k, 1) + Cells (k, 2) k = k + 1 Loop End Sub
„Jeśli k> 6 to zakończ, wykonaj”

Ta linia kodu zainicjuje proces wyjścia. Pętla będzie działać do momentu, gdy wartość k osiągnie 6. W momencie, gdy przekroczy 6, warunek If wykona kod, „Exit Do”.

Teraz możesz uruchomić ten kod za pomocą klawisza skrótu F5 lub ręcznie, aby zobaczyć wynik.

Rzeczy do zapamiętania

  • Robić. Pętla działa na logicznych wynikach i wykonuje pętlę w tę iz powrotem, gdy warunek testu ma wartość TRUE. W momencie, gdy warunek testu zwróci FALSE, zakończy pętlę.
  • Możemy wyjść z pętli w dowolnym momencie, dostosowując jeszcze jeden test logiczny wewnątrz okręgu za pomocą funkcji JEŻELI.
  • Jeśli warunek lub test jest dostarczony na początku pętli, najpierw sprawdzi test i przejdzie dalej tylko wtedy, gdy jest PRAWDA.
  • Jeśli warunek lub test zostanie podany na końcu pętli, najpierw wykona blok kodu wewnątrz instrukcji pętli, a w przyszłości przetestuje warunek, aby zdecydować, czy wrócić do uruchomienia pętli jeszcze raz albo nie.

Interesujące artykuły...