VBA Mens Loop

VBA While Loop er et viktig og kraftig konsept som du kanskje har sett på de fleste programmeringsspråk. Hvis du mestrer dette konseptet under VBA, vil du kunne utarbeide kraftige skript som fungerer med regnearkdata på helt forskjellige og praktiske måter. I denne artikkelen, gjør deg klar til å utforske verdenen til forskjellige mens løkker sammen med flere eksempler som hjelper deg.

Hensikten med While loop er å gjenta en viss uttalelsesblokk med forbehold om at en betingelse er oppfylt. Mer presist, mens loop gjentar det tilsvarende utsagnet mens en betingelse er sann. Når tilstanden blir falsk (oppfyller ikke), avslutter løkken seg selv.

Det er i utgangspunktet to typer mens loop i Microsoft Excel VBA:

  • VBA Mens-Wend Loop
  • VBA Do-While Loop

VBA Mens-Wend Loop eksisterer for å gjøre koden kompatibel med en eldre versjon av koder. VBA Do-While er den oppdaterte versjonen av while loop som er mer fleksibel og strukturert sammenlignet med den forrige og anbefales å brukes av Microsoft-samfunnet.

Bare i tilfelle lurer du på hva Wend betyr, det er en kort form for While End og fungerer som det samme.

Eksempler på VBA While Loop

La oss dykke dypt inn i trinnvise guide for forskjellige typer VBA While Loops.

Du kan laste ned denne VBA While Loop Excel Template her - VBA While Loop Excel Template

Eksempel 1

VBA Mens-Wend Loop

syntaks:

La oss ta et eksempel for å se dette på en bedre måte.

  • Definer en delprosedyre for å lage en makro under ny modul.

Kode:

 Sub WhileEx1 () Slutt Sub 

  • Sett to variabler Number to One og Sum to Zero.

Kode:

 Sub WhileEx1 () Antall = 1 Sum = 0 Slutt Sub 

  • Angi en stund-betingelse for Number-variabelen.

Kode:

 Sub WhileEx1 () Number = 1 Sum = 0 While Number <= 10 End Sub 

  • Legg til uttalelser som skal utføres for dette mens du er betinget.

Kode:

 Sub WhileEx1 () Antall = 1 Sum = 0 Mens Number <= 10 Sum = Sum + Number Number = Number + 1 End Sub 

  • Legg til Debug.Print Sum slik at summen av de 10 første naturlige tallene kan skrives ut én etter én i Umiddelbart vindu.

Kode:

 Sub WhileEx1 () Number = 1 Sum = 0 While Number <= 10 Sum = Sum + Number Number = Number + 1 Debug.Print Sum End Sub 

  • Til slutt, avslutt While loop med Wend uttalelse.

Kode:

 Sub WhileEx1 () Number = 1 Sum = 0 While Number <= 10 Sum = Sum + Number Number = Number + 1 Debug.Print Sum Wend End Sub 

  • Trykk på F5 eller Run-knappen for å kjøre denne koden og se utdataene.

I denne koden er sumvariabelen satt til null. Så hver gang tallet økes med 1 til det når 10 (bruker mens sløyfe), vil sumvariabelen legge til forrige sum med gjeldende nummer og vise det under Umiddelbart vindu rad for rad eller trinnvis sum du kan si.

Eksempel 2

VBA Do-While Loop

Do-While Loop Når tilstanden er sjekket før loopen starter

Det er to måter å gjøre mens loop kan utføres.

  • Du kan legge til tilstand før loopen starter (Det er det samme som While-Wend loop). Her vil det ikke være noen iterasjon av sløyfen hvis tilstanden mislykkes for første gang.
  • Du kan legge til tilstand på den siste sløyfen for å sjekke. I dette tilfellet vil det være minst en iterasjon av løkken før tilstanden mislykkes.

syntaks:

La oss ta ett eksempel for å gjøre ting tydeligere.

  • Sett inn en ny modul og definer en ny delprosedyre for å definere en makro.

Kode:

 Sub WhileEx2 () Slutt Sub 

  • Definer en ny variabel I som et helt tall. Og initier verdien til 1.

Kode:

 Sub WhileEx2 () Dim i Dim Integer i = 1 Slutt Sub 

  • Bruk Do-While for å legge til en tilstand i begynnelsen av løkken.

Kode:

 Sub WhileEx2 () Dim i Dim Integer i = 1 Do While i <= 10 End Sub 

  • Legg til uttalelser som skal utføres så lenge betingelsen er sann. Legg til kodelinjen nedenfor til makroen.

Kode:

 Sub WhileEx2 () Dim i Dim Integer i = 1 Do While i <= 10 Cells (i, 1) .Value = i * i End Sub 

Denne uttalelsen lar den raden i den første kolonnen lagre den kvadratiske verdien av tall.

  • Legg til en uttalelse til som tillater en økning i i med 1 ved hver iterasjon av løkken.

Kode:

 Sub WhileEx2 () Dim i Dim Integer i = 1 Gjør mens jeg <= 10 celler (i, 1). Verdi = i * ii = i + 1 Loop End Sub 

  • Fullfør denne loopen ved å legge til Loop-setning på slutten av koden.

La oss se løsningen på denne koden:

For verdiene i fra 1 (i = 1 til å begynne med) til 10, beregner den, i * i (dvs. kvadratverdi for hver heltalverdi i) og legger den inn under henholdsvis rad 1 til 10 i kolonne 1 (dvs. kolonne A) . Utgangen er ikke annet enn de kvadratiske verdiene for heltalene 1 til 10.

  • Kjør denne koden ved å trykke på F5 eller Run-knappen og se utdataene.

Du kan se de kvadratiske verdiene til naturlige tall 1 til 10 som er lagret i hver celle separat i kolonne A.

Eksempel 3

Do-While Loop Når tilstanden er sjekket på slutten av løkken

syntaks:

La oss se et eksempel for å se loopingen på en bedre måte.

  • Sett inn en ny modul og definer en ny delprosedyre for å lagre en makro.

Kode:

 Sub WhileEx3 () Slutt Sub 

  • Definer et nytt heltall i det samme som i forrige eksempel og tilordne en startverdi til det.

Kode:

 Sub WhileEx3 () Dim i Dim Integer i = 1 Slutt Sub 

  • Bruk en Do-betingelse for å legge til utsagnene som skal utføres, så lenge betingelsen er sann.

Kode:

 Sub WhileEx3 () Dim i Dim Integer i = 1 Gjør celler (i, 2). Verdi = i * ii = i + 1 End Sub 

Det anbefales å bruke hvit mellomrom (Tab-tast) som en innrykk vist i koden ovenfor, som gjør at koden kan fungere jevnt og også definerer et godt strukturformat for koden.

  • Bruk Loop mens du legger til en betingelse som skal sjekkes for hver uttalelse som skal utføres.

Kode:

 Sub WhileEx3 () Dim i Dim Integer i = 1 Gjør celler (i, 2). Verdi = i * ii = i + 1 Loop While i <= 10 End Sub 

  • Kjør denne koden ved å trykke på F5 eller Run-knappen manuelt og se utdataene.

Du ser utdataene som vist på figuren over.

Hvordan fungerer denne koden i backend?

System multipliserer verdien av i (fra 1) til seg selv og lagrer i den andre kolonnen (Cells (i, 2)) for hver rad en etter en. Koden stopper utføres så snart verdien til variabelen i når 10. Utgangen kan være den samme, som logisk betyr at begge kodene fungerer som de samme. Men hovedforskjellen er i å sette sammen koden. I det siste eksemplet var tilstanden allerede der, og systemet visste opp til hvilket nummer det må gå. I denne koden er imidlertid systemet ikke klar over tilstanden på tidspunktet for utførelsen av uttalelser og kjører iterasjonen en etter en. Så lenge tilstanden er falsk, stoppet koden kjøringen.

Ting å huske på VBA Mens Loop

  • While-Wend-løkken er foreldet og er der bare for å være kompatibel med eldre versjoner av koder. Du bør bruke en Do-While-loop i stedet.
  • Do-While-loop er mer fleksibel og godt strukturert sammenlignet med While-Wend-løkken.
  • Do-while-loop kan brukes på to måter der du i ett tilfelle kan legge til tilstand først som skal sjekkes og deretter legge til utsagn som tilfredsstiller betingelsen. På en annen måte kan du legge til uttalelser først og senere legge til betingelsen som skal sjekkes.
  • Innrykk anbefales å bruke i løkker, slik at koden kan være mer dynamisk og lettere å lese.

Anbefalte artikler

Dette har vært en guide til VBA Do While Loop. Her diskuterte vi hvordan du bruker Excel VBA Do While Loop sammen med noen praktiske eksempler og nedlastbar Excel-mal. Du kan også gå gjennom andre foreslåtte artikler -

  1. Hvordan bruke FINN-funksjon i Excel?
  2. Hvordan bruke VBA TRIM-funksjonen?
  3. VBA Arrays | Fullstendig opplæring
  4. Hvordan bruke VBA Select Case?

Kategori: