VBA Break For Loop

Excel VBA Break For Loop

W VBA Break For Loop jest również znany jako pętla wyjście za, każda pętla w dowolnej procedurze otrzymała zestaw instrukcji lub kryteriów, które pozwalają jej uruchomić pewną ilość czasu, ale bardzo często zdarza się, że niektóre pętle wchodzą w nieskończoną pętlę kod w takich scenariuszach musimy przerwać lub zakończyć pętlę, aby wyjść z pewnych sytuacji.

Powiedzmy, że poinstruowaliśmy pętlę, aby działała 10 razy i na podstawie podanego warunku, jeśli wartość komórki lub jakiekolwiek inne podane kryteria są pomyślne, to musi opuścić pętlę programu Excel, zanim zakończy pełny limit pętli wynoszący 10. W tym artykule , pokażemy Ci, jak wyjść z pętli na podstawie podanych kryteriów.

Jak przerwać / zakończyć pętle w VBA?

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

# 1 - Przerwij na następną pętlę

VBA For Next Loop służy do zapętlania komórek i wykonywania określonego zestawu zadań. Na przykład spójrz na poniższy kod VBA.

Kod:

 Sub Exit_Loop () Dim K As Long For K = 1 do 10 Cells (K, 1) .Value = K Next K End Sub 

Spowoduje to wstawienie numerów seryjnych z komórek A1 do A10.

Jest to oczywiste w przypadku For Next Loop.

Teraz chcę przerwać pętlę, gdy jakakolwiek wartość zostanie znaleziona w pierwszych 10 komórkach, w tym celu wprowadziłem wartość tekstową do komórki A8.

Teraz chcę poinstruować w kodzie, że „jeśli komórka zapętlona ma określoną wartość, musi wyjść z pętli przed ustalonym limitem”.

Kod:

 Sub Exit_Loop () Dim K As Long For K = 1 do 10 If Cells (K, 1) .Value = "" Then Cells (K, 1) .Value = K Else Exit For End If Next K End Sub 

Spójrz na ten wiersz kodu:

Jeśli Cells (K, 1) .Value = „” Wtedy

Komórki (K, 1). Wartość = K

Jeszcze

  Wyjdź dla

Koniec, jeśli

Mówi, że jeśli komórki (K, 1) .Value = „” zapętlona komórka jest równa nic, kontynuuj pętlę wstawiania numerów seryjnych od 1 do 10.

Ostatnia część pętli mówi:

Jeszcze

  Wyjdź dla

Jeśli powyższy warunek nie jest PRAWDZIWY, wówczas pętla „Exit For”.

Teraz uruchom kod, który wstawi numery seryjne do komórki A7.

Powyższy kod od razu opuścił pętlę nie mówiąc nic, skąd wiemy, że opuścił pętlę.

Aby usunąć tę niejednoznaczność, musimy umieścić jedno proste okno komunikatu VBA, jak poniżej.

Kod:

 Sub Exit_Loop () Dim K As Long For K = 1 do 10 If Cells (K, 1) .Value = "" Then Cells (K, 1) .Value = K Else MsgBox "Mamy niepustą komórkę w komórce" & Komórki (K, 1) .Address & vbNewLine & "Wychodzimy z pętli" Wyjście na koniec Jeśli następne K End Sub 

Podczas przeglądania komórki w pętli, jeśli zostanie znaleziona niepusta komórka, wyświetli się komunikat „Mamy niepustą komórkę w komórce A8. Wychodzimy z pętli ”.

Poinformuje to użytkownika o wyjściu z pętli za pomocą adresu komórki. Jeśli jakaś wartość wprowadzona przez pomyłkę, możemy sprawdzić adres komórki zwrócony w oknie wiadomości.

# 2 - Break Do Until Loop

Podobnie jak w przypadku wyjścia z For Next Loop, podobnie możemy wyjść z pętli „Do Until”. Na przykład spójrz na poniższy kod.

Kod:

 Sub Exit_DoUntil_Loop () Dim K As Long K = 1 Do Until K = 11 Cells (K, 1) .Value = KK = K + 1 Loop End Sub 

Ten kod wykonuje również zadanie wstawiania numerów seryjnych. Na przykład, jeśli chcemy wyjść z pętli, gdy wartość zmiennej „k” osiągnie wartość 6, musimy wprowadzić kryteria jako JEŻELI k = 6, a następnie wyjść z pętli.

Kod:

 Sub Exit_DoUntil_Loop () Dim K As Long K = 1 Do Until K = 11 Jeśli K <6 Then Cells (K, 1) .Value = K Else Exit Do End If K = K + 1 Loop End Sub 

Spowoduje to uruchomienie pętli, aż wartość zmiennej osiągnie wartość 6, po czym zakończy pętlę. Jeśli chcesz pokazać wiadomość użytkownikowi, możesz również dodać pole wiadomości.

Kod:

 Sub Exit_DoUntil_Loop () Dim K As Long K = 1 Do Until K = 11 If K 5 "Exit Do End If K = K + 1 Loop End Sub 

Spowoduje to wyświetlenie poniższego komunikatu.

W ten sposób, w oparciu o podane kryteria, możemy wyjść z pętli, jeśli kryteria są PRAWDA lub możemy kontynuować pętlę.