VBA Break For Loop

Excel VBA Break för Loop

I VBA Break For Loop är också känt som exit for loop, varje loop i vilken procedur som helst har fått en uppsättning instruktioner eller kriterier för att den ska köra nuber av tid men det är mycket vanligt att någon loop kommer in i en oändlig loop och därmed förstör kod i sådana scenarier behöver vi bryta för eller avsluta för loop för att komma ur vissa situationer.

Låt oss säga att vi har instruerat slingan att köra 10 gånger och baserat på det angivna villkoret om cellvärdet eller något annat tillhandahållet kriterium är framgångsrikt måste det avslutas i excel-slingan innan det fullbordar hela loopkvoten på 10. I den här artikeln , vi visar dig hur du avslutar slingan baserat på angivna kriterier.

Hur man bryter / avslutar loopar i VBA?

Du kan ladda ner denna VBA Break For Loop Excel-mall här - VBA Break For Loop Excel-mall

# 1 - Break For Next Loop

VBA For Next Loop används för att loopa över celler och utföra en specifik uppsättning uppgifter. För ett exempel, se nedanstående VBA-kod.

Koda:

 Sub Exit_Loop () Dim K så länge för K = 1 till 10 celler (K, 1). Värde = K Nästa K End Sub 

Detta infogar serienummer från cell A1 till A10.

Detta är det uppenbara med For Next Loop.

Nu vill jag bryta slingan när något värde finns i de första 10 cellerna, för detta har jag angett något textvärde i cellen A8.

Nu vill jag instruera detta i koden som säger "om loopcellen har ett visst värde måste den lämna slingan före den förutbestämda gränsen".

Koda:

 Sub Exit_Loop () Dim K så länge för K = 1 till 10 om celler (K, 1) .Värde = "" Då celler (K, 1) .Värde = K Annars avslutas för slut om nästa K slutar sub 

Titta på dessa kodrader:

Om celler (K, 1) .Värde = “” Då

Celler (K, 1). Värde = K

Annan

  Avsluta för

Avsluta om

Det står If Cells (K, 1) .Value = “” looping cell är lika med ingenting, fortsätt loopen för att infoga serienummer från 1 till 10.

Den sista delen av slingan säger:

Annan

  Avsluta för

Om ovannämnda villkor inte är SANT, “Exit For” -slinga.

Kör nu koden för att infoga serienummer tills A7-cellen.

Ovanstående kod lämnade genast slingan utan att säga någonting, hur vet vi att den har lämnat slingan.

För att rensa denna tvetydighet måste vi sätta en enkel VBA-meddelandefält enligt nedan.

Koda:

 Sub Exit_Loop () Dim K så länge för K = 1 till 10 om celler (K, 1) .Värde = "" Sedan celler (K, 1) .Värde = K Annars MsgBox "Vi fick en tom cell, i cell" & Celler (K, 1). Adress & vbNewLine & "Vi avslutar slingan" Avsluta för slut om nästa K slutar sub 

När du slingrar genom cellen om någon icke-tom cell hittas kommer den att visa meddelandet "Vi har icke-tom cell, i cell A8. Vi går ut ur slingan ”.

Detta kommer att informera användaren om slingans utgång med en celladress också. Om något värde anges av misstag kan vi kontrollera celladressen som returneras i meddelandefältet.

# 2 - Break Do tills Loop

Liksom hur vi har lämnat For Next Loop, på samma sätt kan vi också lämna "Do tills" -slingan. Titta till exempel på koden nedan.

Koda:

 Sub Exit_DoUntil_Loop () Dim K Så länge K = 1 Gör tills K = 11 celler (K, 1). Värde = KK = K + 1 Loop End Sub 

Den här koden utför också uppgiften att infoga serienummer. Till exempel, om vi vill avsluta slingan när variabeln "k" -värdet blir 6, måste vi ange kriterierna som IF k = 6 och sedan avsluta slingan.

Koda:

 Sub Exit_DoUntil_Loop () Dim K Så länge K = 1 Gör tills K = 11 Om K <6 Då celler (K, 1). Värde = K Annars utgång Gör slut om K = K + 1 Loop End Sub 

Detta kör slingan tills variabelvärdet blir 6, därefter kommer det att gå ut ur slingan. Om du vill visa meddelandet för användaren kan du också lägga till meddelanderutan.

Koda:

 Sub Exit_DoUntil_Loop () Dim K Så länge K = 1 Gör tills K = 11 Om K 5 "Exit Gör slut om K = K + 1 Loop End Sub 

Detta kommer att visa meddelandet nedan.

Så här baserat på de angivna kriterierna kan vi lämna slingan om kriterierna är SANT eller annars kan vi fortsätta slingan.