Excel VBA gör tills slingan

Gör tills loop kommer att fortsätta att upprepa påståenden tills villkoret / kriterierna blir Sanna. Det kommer att utföra uttalanden så länge villkoren är FALSE. Så snart villkoret / kriterierna blir Sanna, avslutar det slingan. Det kan ses som motsatt till Do While-loopen, där slingan körs så länge kriterierna är Sanna och blir avslutade så snart kriterierna är FALSE.

Se flödesschemat nedan som förklarar hur Do Up loop fungerar:

Syntax av Do Before Loop i Excel VBA

Do tills Loop har två typer av syntax i Excel VBA.

Syntax 1:

 Gör tills (villkor) (uttalanden som ska köras) ögla 

Syntax 2:

 Gör (uttalanden som ska utföras) ögla tills (villkor) 

Den grundläggande skillnaden mellan dessa två syntaxer är exekvering. I den första syntaxen kommer slingan alltid att kontrollera om villkoret är sant eller falskt. Om det är falskt kommer det att upprepa slingan igen. Så snart villkoret / kriterierna är sanna kommer det att avsluta slingan. I det här fallet finns det en möjlighet att slingan avslutas vid första iterationen själv (om villkoret är sant). Därför får du inte någon utgång i det fallet. Men i den andra syntaxen kommer slingan initialt att utföra uttalandena och sedan kontrollera om det är sant eller falskt. Om villkoret är falskt kommer det igen att utföra samma uppsättning uttalanden och kontrollera om villkoret. Om den första iterationen i sig ger villkoret som sant, upphör denna slinga, men innan detta kommer den att ha ett uttalande utfört. I så fall får vi åtminstone en iteration (Som nullutgång).

Slutligen kommer utgången från de två koderna att vara densamma. Utförandet är dock något som skiljer sig åt dessa två.

Exempel på Excel VBA Do tills Loop

Låt oss se exemplen på Do Till Loop i Excel VBA.

Du kan ladda ner denna VBA gör tills slingan Excel-mall här - VBA gör tills slingan Excel-mall

Exempel 1 - VBA gör tills slingan när förhållandena kontrolleras i början

Följ stegen nedan för att tillämpa Do Till loop i Excel VBA.

Steg 1: Sätt i en ny modul under Visual Basic Editor (VBE) för att kunna skriva kod.

Steg 2: Definiera en delprocedur som kan lagra den makrokod du ska skriva.

Koda:

 Sub Do_Until_Ex1 () End Sub 

Steg 3: Definiera en ny variabel "X" med datatyp som "Lång". Denna variabel kan användas som villkor / kriterier under Do Till loop.

Koda:

 Sub Do_Until_Ex1 () Dim X Som Long End Sub 

Steg 4: Ställ in initialvärdet på 1 för variabeln X.

Koda:

 Sub Do_Until_Ex1 () Dim X Så länge X = 1 End Sub 

Steg 5: Starta slingan med nyckelord Do tills.

Koda:

 Sub Do_Until_Ex1 () Dim X så länge X = 1 Gör tills slutet Sub 

Steg 6: Ange kriterierna som X = 11 under Gör till. Detta är ett tillstånd som gör att slingan går sönder när det är sant. Det betyder att slingan körs tills värdet på X = 11. Så snart värdet för X är lika med 11 kommer slingan att avslutas.

Koda:

 Sub Do_Until_Ex1 () Dim X så länge X = 1 Gör tills X = 11 Slut Sub 

Steg 7: Använd nu VBA-celler. Värdefunktion för att kunna lägga till kvadratet för varje nummer fram till X under den första kolumnen.

Koda:

 Sub Do_Until_Ex1 () Dim X så länge X = 1 Gör tills X = 11 celler (X, 1) .Värde = X * X End Sub 

Steg 8: Återigen måste vi ställa in steget i X med 1, så att varje gång slingan körs och kontrollerar tillståndet kommer den att gå till nästa nummer och lagra ett kvadratvärde för det i respektive cell tills nummer 11.

Koda:

 Sub Do_Until_Ex1 () Dim X så länge X = 1 Gör tills X = 11 celler (X, 1) .Värde = X * XX = X + 1 End Sub 

Steg 9: Slutför detta gör till loop genom att ange nyckelordet “Loop” i slutet av koden.

Koda:

 Sub Do_Until_Ex1 () Dim X så länge X = 1 Gör tills X = 11 celler (X, 1) .Värde = X * XX = X + 1 Loop End Sub 

I den här koden ville vi ha kvadratvärden för siffror som börjar från 1 till 11 (Så snart ett värde är 11, slutar slingan). Under varje cell i excelark (tills cellnummer 11) lagras värdena. Ökning av 1 enhet tillåter att ett nummer varje gång ökas med 1 i föregående värde på X och kvadratvärdet för det numret skrivs ut i respektive cell. Exempelvis kommer kvadratvärdet för 3 att skrivas ut under den tredje cellen på det aktiva excel-arket. Denna slinga körs så länge som X inte är lika med 11. Därför får vi under cell A1 till cell A10 kvadratiska värden för antalet från 1 till 10 (vid slinga nummer 11 avslutas).

Steg 10: Tryck på Run-knappen eller tryck på F5-tangenten för att köra den här koden och se utgången.

Exempel 2 - Gör tills slingan när förhållandena kontrolleras i slutet av slingan

Följ stegen nedan för att tillämpa Do Till loop i Excel VBA.

Steg 1: Definiera en ny delprocedur under VBE-modulen.

Koda:

 Sub Do_Until_Ex2 () End Sub 

Steg 2: Definiera en variabel "Y" med datatyp som "Long". Denna variabel kommer att vara användbar för att slinga upp villkoren.

Koda:

 Sub Do_Until_Ex2 () Dim Y As Long End Sub 

Steg 3: Ställ in startvärdet för variabeln "Y" som 1.

Koda:

 Sub Do_Until_Ex2 () Dim Y As Long Y = 1 End Sub 

Steg 4: Lägg till villkor genom att skriva Do på nästa rad efter att du har ställt in startvärdet på Y till 1.

Koda:

 Sub Do_Until_Ex2 () Dim Y As Long Y = 1 Do End Sub 

Steg 5: Lägg till koden som du vill köra under Do loop. Här kommer vi att ta samma exempel som ovan (det hjälper oss att lära känna, hur utgångarna är desamma men sammanställningarna skiljer sig åt för två av dessa koder).

Koda:

 Sub Do_Until_Ex2 () Dim Y så länge Y = 1 Do Sheets ("Exempel 2"). Celler (Y, 1) .Värde = Y * Y End Sub 

Steg 6: Efter varje iteration av slingan ville du att värdet skulle höjas med 1 enhet, ställ in ett kommando för det under Do-avsnittet.

Koda:

 Sub Do_Until_Ex2 () Dim Y så länge Y = 1 Do Sheets ("Exempel 2"). Celler (Y, 1) .Värde = Y * YY = Y + 1 End Sub 

Steg 7: Lägg till ett avslutande uttalande för den här loopen med ett nyckelord som "Loop".

Koda:

 Sub Do_Until_Ex2 () Dim Y så länge Y = 1 Do Sheets ("Exempel 2"). Celler (Y, 1) .Värde = Y * YY = Y + 1 Loop End Sub 

Vänta! Det finns något mer. Du måste lägga till tills kriterier / villkor under den här slingan, den här gången efter Loop-nyckelordet. Det gör att kompilatorn kan kontrollera tillståndet i slutet av slingan.

Steg 8: Lägg till tills Y = 11 som villkor efter Loop-nyckelordet.

Koda:

 Sub Do_Until_Ex2 () Dim Y så länge Y = 1 Do Sheets ("Exempel 2"). Celler (Y, 1) .Värde = Y * YY = Y + 1 loop tills Y = 11 End Sub 

Steg 9: Kör den här koden genom att trycka på F5 eller Run-knappen och se magin under arket som heter "Exempel 2".

Hur fungerar den här koden?

Systemet kvadrerar upp till värdet på Y varje gång under slingan och lagrar det under den andra kolumnen i ark som heter "Exempel 2" rad för rad. Efter varje iteration ökas det aktuella värdet på Y med 1 enhet och det uppdaterade värdet kvadreras och lagras. Så länge värdet är mindre än kriterievärdet (Y = 11) kommer koden att göra kvadratet och lagra det. Så snart värdekompilatorn når värdet Y = 11, slutar den att köra koden och avslutar densamma.

Båda koderna ger en liknande utgång, men logiskt sett är det en skillnad i sammanställningarna för båda. I den första typen av kod kontrolleras villkoret i början av slingan och om det är falskt börjar bara slingan att utvärdera nästa uttryck. I det andra exemplet börjar emellertid koden att köra slingan och köra Do-uttalanden i början (lagrar värdena i ett buffertminne för exekveringssatserna). I slutet av slingan kommer kompilatorn med ett kriterium och kontrollerar detsamma med buffertvärdet.

Saker att komma ihåg

  • VBA Do Till är exakt det omvända fallet med Excel VBA Do While. VBA Do While loop fungerar så länge villkoret är SANT. När villkoret är FALSE avslutas Do While-slingan. Å andra sidan körs VBA Do Till så länge villkoret är FALSE. Så snart villkoret är SANT, avslutas slingan.
  • Det har två sätt att handlägga, ett där villkoret kontrolleras i början av slingan och andra där villkoret kontrolleras i slutet av slingan.

Rekommenderade artiklar

Detta är en guide till VBA Do Till Loop. Här diskuterar vi hur du använder Excel VBA Do Before Loop tillsammans med några praktiska exempel och nedladdningsbar Excel-mall. Du kan också gå igenom våra andra föreslagna artiklar -

  1. VBA medan Loop
  2. LOOKUP-formel i Excel
  3. Komplett handledning om VBA-loopar
  4. Uppslagstabell i Excel

Kategori: