VBA Break for Loop - Hvordan avslutte for loop i Excel VBA?

Innholdsfortegnelse

Excel VBA Break For Loop

I VBA Break For Loop er også kjent som exit for loop, hver loop i en hvilken som helst prosedyre har blitt gitt noen sett med instruksjoner eller kriterier for at den skal kjøre nuber av tid, men det er veldig vanlig at noen loop kommer inn i en uendelig løkke og dermed ødelegger kode i slike scenarier trenger vi pause for eller avslutte for loop for å komme ut av visse situasjoner.

La oss si at vi har instruert løkken om å kjøre i 10 ganger, og basert på den gitte tilstanden, hvis celleverdien eller andre leverte kriterier er vellykket, må den avslutte excel-sløyfen før den fullfører hele sløyfekvoten på 10. I denne artikkelen vil vi vise deg hvordan du avslutter sløyfen basert på kriteriene gitt.

Hvordan bryte / avslutte løkker i VBA?

# 1 - Break For Next Loop

VBA For Next Loop brukes til å løpe over celler og utføre et bestemt sett med oppgaver. Se for eksempel på VBA-koden nedenfor.

Kode:

Sub Exit_Loop () Dim K så lenge for K = 1 til 10 celler (K, 1). Verdi = K Neste K End Sub

Dette vil sette inn serienumre fra celle A1 til A10.

Dette er den åpenbare tingen med For Next Loop.

Nå vil jeg bryte løkken når noen verdi blir funnet i de første 10 cellene. For dette har jeg lagt inn litt tekstverdi i cellen A8.

Nå vil jeg instruere dette i koden og si: "Hvis looping cellen har en viss verdi, må den gå ut av loop før den forhåndsbestemte grensen."

Kode:

Sub Exit_Loop () Dim K så lenge for K = 1 til 10 Hvis celler (K, 1) .Value = "" Så celler (K, 1) .Value = K Ellers avslutt for slutt Hvis neste K End Sub

Se på disse kodelinjene:

Hvis celler (K, 1) .Value = “” Så
celler (K, 1) .Value = K
Ellers
avslutning for
slutt hvis

Det står If Cells (K, 1). Verdi = “sløyfecelle er lik ingenting, fortsett sløyfen for å sette inn serienumre fra 1 til 10.

Den siste delen av løkken sier:

Ellers

Avslutt for

Hvis den ovennevnte tilstanden ikke er SANT, så er "Exit For" -sløyfen.

Kjør nå koden. Den setter inn serienumre til A7-cellen.

Ovennevnte kode gikk straks ut av løkken uten å si noe; hvordan vet vi at det har gått ut av løkken.

For å fjerne denne tvetydigheten, må vi sette en enkel VBA-meldingsboks nedenfor.

Kode:

Sub Exit_Loop () Dim K så lenge for K = 1 til 10 hvis celler (K, 1) .Value = "" Da celler (K, 1) .Value = K Else MsgBox "Vi fikk ikke tom celle, i celle" & Celler (K, 1). Adresse & vbNewLine & "Vi går ut av sløyfen" Avslutt for slutt hvis neste K slutt sub

Når en ikke-tom celle blir funnet, vil den vise meldingen som sier: “Vi har ikke-tom celle, i celle A8. Vi går ut av sløyfen ”.

Dette vil også informere brukeren om utgangen av sløyfen med en celle-adresse. Hvis en verdi blir oppgitt ved en feiltakelse, kan vi sjekke celleadressen som returneres i meldingsboksen.

# 2 - Break Do Before Loop

På samme måte som hvordan vi har gått ut for Next Loop, kan vi også avslutte "Do Before" -sløyfen. Se for eksempel på koden nedenfor.

Kode:

Sub Exit_DoUntil_Loop () Dim K Så lenge K = 1 Gjør til K = 11 celler (K, 1). Verdi = KK = K + 1 Loop End Sub

Denne koden utfører også oppgaven med å sette inn serienumre. For eksempel, hvis vi ønsker å avslutte sløyfen når variabelen “k” -verdien blir 6, må vi angi kriteriene som HVIS k = 6 og deretter avslutte sløyfen.

Kode:

Sub Exit_DoUntil_Loop () Dim K Så lenge K = 1 Gjør til K = 11 Hvis K <6 Så celler (K, 1). Verdi = K Annet Exit Do End Hvis K = K + 1 Loop End Sub

Dette vil kjøre sløyfen til variabelverdien blir 6. Deretter vil den gå ut av sløyfen. Hvis du ønsker å vise meldingen til brukeren, kan du også legge til meldingsboksen.

Kode:

Sub Exit_DoUntil_Loop () Dim K Så lenge K = 1 Gjør til K = 11 Hvis K 5 "Exit Do End Hvis K = K + 1 Loop End Sub

Dette vil vise meldingen nedenfor.

Som dette, basert på kriteriene som er gitt, kan vi gå ut av sløyfen hvis kriteriene er SANNE, ellers kan vi fortsette sløyfen.

Interessante artikler...