Excel VBA Gjør til sløyfe

Gjør til loop vil fortsette å gjenta utsagnene til betingelsen / kriteriene blir SANN. Det vil utføre uttalelsene så lenge forholdene er FALSE. Så snart tilstanden / kriteriene blir SANN, avslutter den loopen. Det kan sees på som motsatt av Do While-loopen, der løkken løper så lenge kriteriene er SANN og blir avsluttet så snart kriteriene er FALSE.

Se flytskjemaet nedenfor som forklarer bruken av Do Till loop:

Syntaks for Do Before Loop i Excel VBA

Do Inntil Loop har to typer syntaks i Excel VBA.

Syntaks 1:

 Gjør til (Tilstand) (Uttalelser som skal utføres) Loop 

Syntaks 2:

 Gjør (uttalelser som skal utføres) Loop Till (tilstand) 

Den grunnleggende forskjellen mellom disse to syntaksene er utførelse. I den første syntaksen vil løkken alltid sjekke om tilstanden er sann eller usann. Hvis den er usann, vil den gjenta loopen igjen. Så snart betingelsen / kriteriene er sanne, vil den avslutte løkken. I dette tilfellet er det en mulighet for at sløyfen avsluttes ved selve iterasjonen (hvis tilstanden er sann). Dermed får du ikke noe utdata i så fall. I andre syntaks vil imidlertid sløyfen først utføre utsagnene og deretter sjekke om tilstanden er sann eller usann. Hvis tilstanden er usann, vil den igjen utføre det samme settet med uttalelser og se etter om tilstanden. Hvis den første iterasjonen i seg selv gir betingelse som True, avsluttes denne loopen, men før det vil den få en uttalelse utført. I så fall får vi minst en iterasjon (Som nullutgang).

Til slutt vil utgangen til de to kodene være den samme. Imidlertid er henrettelsen noe som skiller disse to.

Eksempel på Excel VBA Do Till Loop

La oss se eksemplene på Do Till Loop i Excel VBA.

Du kan laste ned denne VBA Do Till Loop Excel-malen her - VBA Do Before Loop Excel-malen

Eksempel 1 - VBA Gjør til sløyfe når forholdene er sjekket i starten

Følg trinnene nedenfor for å bruke Do In-sløyfen i Excel VBA.

Trinn 1: Sett inn en ny modul under Visual Basic Editor (VBE) for å kunne skrive kode.

Trinn 2: Definer en delprosedyre som kan lagre makrokoden du skal skrive.

Kode:

 Sub Do_Until_Ex1 () Slutt Sub 

Trinn 3: Definer en ny variabel "X" med datatype som "Lang". Denne variabelen kan brukes som betingelse / kriterier under Do In-loop.

Kode:

 Sub Do_Until_Ex1 () Dim X As Long End Sub 

Trinn 4: Sett startverdien til 1 for variabelen X.

Kode:

 Sub Do_Until_Ex1 () Dim X As Long X = 1 End Sub 

Trinn 5: Start loopen med nøkkelord Do Inntil.

Kode:

 Sub Do_Until_Ex1 () Dim X Så lang X = 1 Gjør til slutten Sub 

Trinn 6: Angi kriteriene som X = 11 under Gjør til. Dette er en tilstand som gjør at sløyfen kan gå i stykker når det er sant. Det betyr at løkken vil løpe til verdien av X = 11. Så snart verdien for X tilsvarer 11, vil sløyfen avslutte.

Kode:

 Sub Do_Until_Ex1 () Dim X Så lang X = 1 Gjør til X = 11 Slutt Sub 

Trinn 7: Bruk nå VBA-celler. Verdifunksjon for å kunne legge til kvadratet til hvert nummer til X under den første kolonnen.

Kode:

 Sub Do_Until_Ex1 () Dim X så lang X = 1 Gjør til X = 11 celler (X, 1). Verdi = X * X End Sub 

Trinn 8: Vi må igjen sette trinnet i X med 1, slik at hver gang løkken løper og sjekker tilstanden, vil den gå til neste nummer og lagre en kvadratverdi av den i den respektive cellen til nummer 11.

Kode:

 Sub Do_Until_Ex1 () Dim X så lang X = 1 Gjør til X = 11 celler (X, 1). Verdi = X * XX = X + 1 End Sub 

Trinn 9: Fullfør denne Do In- loopen ved å legge inn nøkkelordet “Loop” på slutten av koden.

Kode:

 Sub Do_Until_Ex1 () Dim X så lang X = 1 Gjør til X = 11 celler (X, 1). Verdi = X * XX = X + 1 Loop End Sub 

I denne koden ville vi ha kvadratiske verdier for tall som starter fra 1 til 11 (Så snart en verdi er 11, slutter sløyfen). Under hver celle i excelark (til celle nummer 11) blir verdiene lagret. Økning på 1 enhet gjør at et tall hver gang kan økes med 1 i forrige verdi på X og kvadratverdien til dette tallet skrives ut i den respektive cellen. For eksempel vil kvadratverdien for 3 skrives ut under den tredje cellen på det aktive excelarket. Denne sløyfen kjører så lenge X ikke er lik 11. Under celle A1 til celle A10 får vi de kvadratiske verdiene til tallet som starter fra 1 til 10 (ved nummer 11-sløyfe avsluttet).

Trinn 10: Trykk på Kjør-knappen eller trykk på F5-tasten for å kjøre denne koden og se utdataene.

Eksempel # 2 - Gjør til sløyfe når forholdene er sjekket på slutten av løkken

Følg trinnene nedenfor for å bruke Do In-sløyfen i Excel VBA.

Trinn 1: Definer en ny delprosedyre under VBE-modulen.

Kode:

 Sub Do_Until_Ex2 () Slutt Sub 

Trinn 2: Definer en variabel "Y" med datatype som "Long". Denne variabelen vil være nyttig når du skal sløyfe forholdene.

Kode:

 Sub Do_Until_Ex2 () Dim Y As Long End Sub 

Trinn 3: Angi startverdien til variabelen "Y" som 1.

Kode:

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

Trinn 4: Legg til tilstand ved å skrive Do på neste linje etter at du har satt startverdien på Y til 1.

Kode:

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

Trinn 5: Legg til koden som du vil utføres under Do loop. Her tar vi samme eksempel som ovenfor (det vil hjelpe oss å bli kjent, hvordan utgangene er de samme, men sammenstillingene er forskjellige for to av disse kodene).

Kode:

 Sub Do_Until_Ex2 () Dim Y As Long Y = 1 Do Sheets ("Eksempel 2"). Celler (Y, 1) .Value = Y * Y End Sub 

Trinn 6: Etter hver iterasjon av løkken, ønsket du at verdien skulle økes med 1 enhet, angi en kommando for det under Gjør-delen.

Kode:

 Sub Do_Until_Ex2 () Dim Y Så lenge Y = 1 Do Sheets ("Eksempel 2"). Celler (Y, 1). Verdi = Y * YY = Y + 1 End Sub 

Trinn 7: Legg til en avsluttende uttalelse for denne loopen med et nøkkelord som "Loop".

Kode:

 Sub Do_Until_Ex2 () Dim Y Så lenge Y = 1 Do Sheets ("Eksempel 2"). Celler (Y, 1). Verdi = Y * YY = Y + 1 Loop End Sub 

Vent litt! Det er noe mer. Du må legge til kriteriene / betingelsen til under denne sløyfen, denne gangen etter Loop-nøkkelordet. Det vil tillate kompilatoren å sjekke tilstanden på slutten av løkken.

Trinn 8: Legg til Y = 11 som en betingelse etter Loop nøkkelord.

Kode:

 Sub Do_Until_Ex2 () Dim Y Så lenge Y = 1 Do Sheets ("Eksempel 2"). Celler (Y, 1). Verdi = Y * YY = Y + 1 Loop til Y = 11 End Sub 

Trinn 9: Kjør denne koden ved å trykke på F5 eller Run-knappen og se magien under arket som heter “Eksempel 2”.

Hvordan fungerer denne koden?

System kvadrater opp til verdien av Y hver gang under løkken og lagrer den under den andre kolonnen på arket som heter “Eksempel 2” rad for rad. Etter hver iterasjon økes den nåværende verdien av Y med 1 enhet, og den oppdaterte verdien blir kvadratisk og lagret opp. Så lenge verdien er mindre enn kriterieverdien (Y = 11), vil koden gjøre kvadratet og lagre den. Så snart verdikompilatoren når verdien Y = 11, slutter den å utføre koden og avslutter den samme.

Begge kodene gir en lignende utgang, men logisk er det en forskjell i sammenstillinger for begge. I den første kodetypen blir tilstanden sjekket i starten av løkken, og hvis den er usann, begynner bare løkken å evaluere neste uttrykk. I det andre eksemplet begynner imidlertid koden å løpe og utføre Do-setninger i starten (lagring av verdiene i et bufferminne for utførelsesuttalelsene). På slutten av sløyfen kommer kompilatoren med et kriterium og sjekker det samme med bufferverdien.

Ting å huske

  • VBA Do Till er nøyaktig omvendt tilfelle av Excel VBA Do While. VBA Do While loop løper så lenge tilstanden er SANN. Når tilstanden er FALSE, blir Do While-loop avsluttet. På den annen side kjører VBA Do Till så lenge tilstanden er FALSE. Så snart tilstanden er SANN, blir loop avsluttet.
  • Den har to måter å behandle på, den ene der tilstanden blir sjekket i starten av løkken og den andre der tilstanden blir sjekket på slutten av løkken.

Anbefalte artikler

Dette er en guide til VBA Do Before Loop. Her diskuterer vi hvordan du bruker Excel VBA Do Till Loop sammen med noen praktiske eksempler og nedlastbar Excel-mal. Du kan også gå gjennom andre foreslåtte artikler -

  1. VBA Mens Loop
  2. LOOKUP Formel i Excel
  3. Fullfør veiledning på VBA-løkker
  4. Oppslagstabell i Excel

Kategori: