Excel VBA Break för Loop
I VBA Break For Loop kallas också exit for loop, varje loop i varje procedur 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 slinga 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 lämna excel-slingan innan den slutför hela slingkvoten på 10. I den här artikeln visar vi dig hur du avslutar slingan baserat på angivna kriterier.

Hur man bryter / avslutar loopar i VBA?
# 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. Titta till exempel på 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 och säga, "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) .Value = “” Sedan
celler (K, 1) .Värde = K
Annars
avslutas för
slut om
Det står Om celler (K, 1). Värde = “looping cell är lika med ingenting, fortsätt loop 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, då “Exit For” -slingan.
Kör nu koden. Det kommer att infoga serienummer tills A7-cellen.

Ovanstående kod lämnade genast slingan utan att säga någonting; hur vet vi att det har lämnat slingan.
För att rensa denna tvetydighet måste vi lägga en enkel VBA-meddelandefält nedan.
Koda:
Sub Exit_Loop () Dim K så länge för K = 1 till 10 om celler (K, 1) .Value = "" Sedan celler (K, 1) .Värde = K Annars MsgBox "Vi fick en tom cell, i cell" & Celler (K, 1). Adress & vbNewLine & "Vi lämnar slingan" Avsluta för slut om nästa K slutar sub
Om någon icke-tom cell hittas, kommer meddelandet att säga ”Vi har icke-tom cell, i cell A8, när man slingrar igenom cellen. Vi lämnar 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, kan vi också lämna slingan "Gör tills". 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. Om vi till exempel 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 visar meddelandet nedan.

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