VBA Break For Loop - Jak wyjść z pętli w Excel VBA?

Spisie treści

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ę.

Interesujące artykuły...