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ę, co powoduje uszkodzenie 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, jak wyjść z pętli na podstawie podanych kryteriów.

Jak przerwać / zakończyć pętle w VBA?
# 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.

To oczywiste w przypadku For Next Loop.
Teraz chcę przerwać pętlę, gdy w pierwszych 10 komórkach zostanie znaleziona jakakolwiek wartość. W tym celu wprowadziłem wartość tekstową w komórce A8.

Teraz chcę to poinstruować w kodzie, mówiąc: „jeśli komórka zapętlona ma określoną wartość, musi wyjść z pętli przed ustalonym z góry 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:
If Cells (K, 1) .Value = „” Then
Cells (K, 1) .Value = K
Else
Exit For
End If
Mówi, że jeśli komórki (K, 1). Wartość = „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 TRUE, pętla „Exit For”.
Teraz uruchom kod. Wstawi numery seryjne do komórki A7.

Powyższy kod natychmiast wyszedł z pętli, nic nie mówiąc; skąd wiemy, że wyszedł z pętli.
Aby usunąć tę niejednoznaczność, musimy umieścić poniżej jedno proste okno komunikatu VBA.
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 Koniec Sub
Jeśli podczas przeglądania komórki zostanie znaleziona jakaś 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 jakakolwiek wartość zostanie wpisana przez pomyłkę, możemy sprawdzić adres komórki zwrócony w okienku 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, dopóki wartość zmiennej nie osiągnie wartości 6. Następnie 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ą TRUE, albo możemy kontynuować pętlę.