VBA Mens Loop

VBA Mens Loop er et vigtigt og magtfuldt koncept, som du måske har set i de fleste programmeringssprog. Hvis du mestrer dette koncept under VBA, vil du være i stand til at forberede kraftfulde scripts, der fungerer med regnearksdata på helt forskellige og praktiske måder. I denne artikel skal du være klar til at udforske forskellige verdeners verden, mens loops sammen med flere eksempler kommer til din hjælp.

Formålet med Mens-loop er at gentage en bestemt blok med udsagn underlagt, at en betingelse er opfyldt. Mere præcist, mens loop gentager den tilsvarende erklæring, mens en betingelse er sand. Når betingelsen bliver falsk (ikke opfylder), slutter løkken sig selv.

Der er dybest set to typer, mens loop i Microsoft Excel VBA:

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

VBA Mens-Wend Loop findes for at gøre koden kompatibel med en ældre version af koder. VBA Do-While er den opdaterede version af while-loop, som er mere fleksibel og struktureret sammenlignet med den foregående og anbefales at blive brugt af Microsoft-samfundet.

Bare i tilfælde af at du undrer dig over, hvad Wend betyder, er det en kort form for While End og fungerer som det samme.

Eksempler på VBA While Loop

Lad os dykke dybt ned i den trinvise guide over forskellige typer VBA While Loops.

Du kan downloade denne VBA While Loop Excel-skabelon her - VBA While Loop Excel-skabelon

Eksempel 1

VBA Mens-Wend Loop

Syntaks:

Lad os tage et eksempel for at se dette på en bedre måde.

  • Definer en underprocedure for at oprette en makro under nyt modul.

Kode:

 Sub WhileEx1 () End Sub 

  • Sæt to variabler nummer til en og sum til nul.

Kode:

 Sub WhileEx1 () Antal = 1 Sum = 0 End Sub 

  • Indstil en stund-betingelse for variabel Number.

Kode:

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

  • Tilføj udsagn, der skal udføres for dette under betingelse.

Kode:

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

  • Tilføj fejlsøgning. Udskriv sum, så summen af ​​de første 10 naturlige numre kan udskrives en ad gangen i det umiddelbare vindue.

Kode:

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

  • Til sidst afsluttes loopen med Wend-erklæring.

Kode:

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

  • Tryk på F5 eller Run-knappen for at køre denne kode og se output.

I denne kode er sumvariablen indstillet til nul. Så hver gang antallet øges med 1, indtil det når 10 (ved brug af mens løkke), tilføjer sumvariablen den forrige sum med det aktuelle antal og viser det under det øjeblikkelige vindue række for række eller trinvis sum du kan sige.

Eksempel 2

VBA Do-While Loop

Gør-mens-loop, når tilstanden er kontrolleret, før loopen starter

Der er to måder, man kan udføre, mens loop kan udføres.

  • Du kan tilføje betingelse, før loopen starter (Det er det samme som While-Wend loop). Her ville der ikke være nogen iteration af løkken, hvis betingelsen mislykkes for første gang.
  • Du kan tilføje betingelse i den sidste af løkken for at kontrollere. I dette tilfælde vil der være mindst en iteration af løkken, før betingelsen mislykkes.

Syntaks:

Lad os tage et eksempel for at gøre tingene klarere.

  • Indsæt et nyt modul og definer en ny underprocedure for at definere en makro.

Kode:

 Sub WhileEx2 () End Sub 

  • Definer en ny variabel I som et heltal. Og initier dens værdi til 1.

Kode:

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

  • Brug Do-While til at tilføje en betingelse i starten af ​​løkken.

Kode:

 Sub WhileEx2 () Dim i Dim heltal i = 1 Gør, mens jeg <= 10 End Sub 

  • Tilføj udsagn, der skal udføres, så længe betingelsen er sand. Føj nedenstående kodelinje til makroen.

Kode:

 Sub WhileEx2 () Dim i Dim heltal i = 1 Gør, mens jeg <= 10 celler (i, 1). Værdi = i * i End Sub 

Denne erklæring gør det muligt for den ith række i den første kolonne at gemme den kvadratiske værdi af tal.

  • Tilføj endnu en sætning, der tillader en forøgelse i i med 1 ved hver iteration af løkken.

Kode:

 Sub WhileEx2 () Dim i Dim heltal i = 1 Gør, mens jeg <= 10 celler (i, 1). Værdi = i * ii = i + 1 Loop End Sub 

  • Fuldfør denne loop ved at tilføje Loop-erklæring i slutningen af ​​din kode.

Lad os se løsningen på denne kode:

For værdierne i i fra 1 (i = 1 indledningsvis) til 10 beregner det, i * i (dvs. kvadratværdi for hver heltalværdi af i) og indlæser den under rækker 1 til 10 i kolonne 1 (dvs. kolonne A) . Outputet er intet andet end de kvadratiske værdier for heltal 1 til 10.

  • Kør denne kode ved at trykke på F5 eller Run-knappen og se output.

Du kan se de kvadratiske værdier for naturlige tal 1 til 10, der er gemt i hver celle separat i kolonne A.

Eksempel 3

Gør-mens-loop, når tilstanden er markeret i slutningen af ​​løkken

Syntaks:

Lad os se et eksempel for at se loopingen på en bedre måde.

  • Indsæt et nyt modul og definer en ny underprocedure til lagring af en makro.

Kode:

 Sub WhileEx3 () Slut Sub 

  • Definer et nyt heltal i det samme som i det foregående eksempel, og tildel en startværdi til det.

Kode:

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

  • Brug en Do-betingelse for at tilføje de udsagn, der skal udføres, så længe betingelsen er sand.

Kode:

 Sub WhileEx3 () Dim i Dim heltal i = 1 Gør celler (i, 2) .Værdi = i * ii = i + 1 End Sub 

Det anbefales at bruge hvid plads (Tab-tast) som en indrykning vist i ovenstående kode, som tillader koden at køre glat og også definerer et godt strukturformat for koden.

  • Brug Loop mens du tilføjer en betingelse, der skal kontrolleres for hver sætning, der skal udføres.

Kode:

 Sub WhileEx3 () Dim i Dim heltal i = 1 Gør celler (i, 2). Værdi = i * ii = i + 1 Loop While i <= 10 End Sub 

  • Kør denne kode ved at trykke på F5 eller Run-knappen manuelt og se output.

Du får vist output som vist på figuren ovenfor.

Hvordan fungerer denne kode i backend?

System multiplicerer værdien af ​​i (startende fra 1) til sig selv og gemmer i den anden kolonne (celler (i, 2)) for hver række en efter en. Koden stopper udføres, så snart værdien af ​​variablen i når 10. Udgangen kan være den samme, hvilket logisk betyder, at begge koder fungerer som de samme. Men den største forskel er i udarbejdelse af koden. I det sidste eksempel var betingelsen allerede der, og systemet vidste op til hvilket nummer det skal gå. I denne kode er systemet imidlertid ikke opmærksom på betingelsen på tidspunktet for udførelsen af ​​udsagn og kører iterationen en efter en. Så længe betingelsen er falsk, stoppede koden med at udføre.

Ting at huske på VBA Mens Loop

  • Mens Wend-sløjfen er forældet og er der bare for at være kompatibel med ældre versioner af koder. Du skal i stedet bruge en Do-While-loop.
  • Do-While-loop er mere fleksibel og velstruktureret sammenlignet med While-Wend-løkken.
  • Do-while-loop kan bruges på to måder, hvor du i et tilfælde kan tilføje betingelse, der først skal kontrolleres og derefter tilføje udsagn, der opfylder betingelsen. På en anden måde kan du tilføje udsagn først og senere tilføje den betingelse, der skal kontrolleres.
  • Det anbefales at anvende indrykk i løkker, så koden kan være mere dynamisk og lettere at læse.

Anbefalede artikler

Dette har været en guide til VBA Do While Loop. Her diskuterede vi, hvordan man bruger Excel VBA Do While Loop sammen med nogle praktiske eksempler og downloadbar excel-skabelon. Du kan også gennemgå vores andre foreslåede artikler -

  1. Hvordan bruges FIND-funktion i Excel?
  2. Hvordan bruges VBA TRIM-funktionen?
  3. VBA Arrays | Komplet selvstudie
  4. Hvordan bruges VBA Select Case?

Kategori: