Excel VBA Break for Loop
U VBA Break For Loop poznat je i kao izlaz za petlju, svaka petlja u bilo kojem postupku dobila je neki niz uputa ili kriterija kako bi se mogla odvijati vremenski, ali vrlo je često da neka petlja uđe u beskonačnu petlju, tako oštećujući koda u takvim scenarijima trebamo prekid ili izlaz za petlju da bismo izašli iz određenih situacija.
Recimo da smo naredili petlji da se izvrši 10 puta, a na temelju zadanog uvjeta, ako je vrijednost ćelije ili bilo koji drugi dostavljeni kriterij uspješan, tada mora napustiti excel petlju prije nego što popuni kvotu pune petlje od 10. U ovom ćemo vam članku pokazati kako izaći iz petlje na temelju danih kriterija.

Kako prekinuti / izaći iz petlji u VBA?
# 1 - Pauza za sljedeću petlju
VBA za sljedeću petlju koristi se za petljanje po ćelijama i izvođenje određenog skupa zadataka. Na primjer, pogledajte donji VBA kod.
Kodirati:
Sub Exit_Loop () Dim K Kratko za K = 1 do 10 ćelija (K, 1) .Vrijednost = K Sljedeći K Kraj Sub
Ovo će umetnuti serijske brojeve iz ćelije A1 do A10.

To je očita stvar s For Next Loop.
Sada želim prekinuti petlju kada se bilo koja vrijednost pronađe u prvih 10 ćelija. Zbog toga sam unijeo neku tekstualnu vrijednost u ćeliju A8.

Sada to želim uputiti u kod, rekavši, "ako ćelija petlje ima određenu vrijednost, mora izaći iz petlje prije unaprijed određenog ograničenja."
Kodirati:
Sub Exit_Loop () Dim K Kratko za K = 1 do 10 ako ćelije (K, 1) .Value = "" Zatim ćelije (K, 1) .Value = K Else Exit For End If Next K End Sub
Pogledajte ove retke koda:
Ako su ćelije (K, 1) .Vrijednost = “” Tada
ćelije (K, 1) .Vrijednost = K
Else
Exit For
End If
Kaže Ako ćelije (K, 1). Vrijednost = „petlja ćelije jednaka je ničemu, nastavite petlju umetanja serijskih brojeva od 1 do 10.
Posljednji dio petlje kaže:
Drugo
Izlaz za
Ako gornji uvjet nije ISTINA, petlja „Izlaz za”.
Sada pokrenite kod. Umetat će serijske brojeve do ćelije A7.

Gornji kod je odmah izašao iz petlje ne rekavši ništa; kako znamo da je izašao iz petlje.
Da bismo uklonili tu dvosmislenost, dolje moramo staviti jedno jednostavno VBA polje za poruke.
Kodirati:
Sub Exit_Loop () Dim K Kratko za K = 1 do 10 ako ćelije (K, 1) .Value = "" Zatim ćelije (K, 1) .Value = K Else MsgBox "Dobili smo nepraznu ćeliju, u ćeliji" & Ćelije (K, 1). Adresa & vbNewLine & "Izlazimo iz petlje" Izlaz za kraj ako je sljedeći K kraj Sub
Kada se petlja kroz ćeliju, ako se pronađe bilo koja neprazna ćelija, prikazat će se poruka koja kaže: „Dobili smo nepraznu ćeliju u ćeliji A8. Izlazimo iz petlje ”.

To će obavijestiti korisnika o izlazu iz petlje s adresom ćelije. Ako je bilo koja vrijednost unesena pogreškom, tada možemo provjeriti adresu ćelije vraćenu u okviru za poruku.
# 2 - Break Do Do Loop
Kao i način na koji smo izašli za Next Loop, slično tome, možemo izaći i iz petlje "Do Do". Na primjer, pogledajte donji kod.
Kodirati:
Sub Exit_DoUntil_Loop () Dim K Dokle K = 1 Do K = 11 ćelija (K, 1) .Vrijednost = KK = K + 1 Loop End Sub
Ovaj kod također izvršava zadatak umetanja serijskih brojeva. Na primjer, ako želimo izaći iz petlje kada vrijednost varijable "k" postane 6, trebamo unijeti kriterije kao AKO k = 6, a zatim izaći iz petlje.
Kodirati:
Sub Exit_DoUntil_Loop () Dim K Dugo K = 1 Raditi do K = 11 Ako je K <6 Tada ćelije (K, 1) .Vrijednost = K Else Exit Do End If K = K + 1 Loop End Sub
Ovo će pokretati petlju dok vrijednost varijable ne postane 6. Nakon toga će izaći iz petlje. Ako poruku želite prikazati korisniku, tada možete dodati i okvir za poruku.
Kodirati:
Sub Exit_DoUntil_Loop () Dim K Dugo K = 1 Napraviti do K = 11 Ako K 5 "Izlaz Do End End Ako K = K + 1 Loop End Sub
Ovo će prikazati donju poruku.

Ovako, na temelju danih kriterija, možemo izaći iz petlje ako su kriteriji ISTINITI, ili možemo nastaviti petlju.