VBA medan Loop

VBA While Loop är ett viktigt och kraftfullt koncept som du kanske har sett på de flesta programmeringsspråk. Om du behärskar detta koncept under VBA kommer du att kunna förbereda kraftfulla skript som arbetar med kalkylbladdata på helt olika och praktiska sätt. I den här artikeln, gör dig redo att utforska de olika världarna medan slingor tillsammans med flera exempel kommer för din hjälp.

Syftet med While loop är att upprepa ett visst block av uttalanden under förutsättning att ett villkor uppfylls. Mer exakt, medan loop repeterar motsvarande uttalande medan ett villkor är sant. När villkoret blir falskt (uppfylls inte) slutar slingan sig själv.

Det finns i princip två typer av medan loop i Microsoft Excel VBA:

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

VBA While-Wend Loop finns för att göra koden kompatibel med en äldre version av koder. VBA Do-While är den uppdaterade versionen av while loop som är mer flexibel och strukturerad jämfört med föregående och rekommenderas att användas av Microsoft community.

Bara i fall undrar du vad Wend betyder, det är en kort form av While End och fungerar som samma.

Exempel på VBA While Loop

Låt oss dyka djupt in i steg för steg-guide för olika typer av VBA While Loops.

Du kan ladda ner denna VBA While Loop Excel-mall här - VBA While Loop Excel-mall

Exempel 1

VBA While-Wend Loop

Syntax:

Låt oss ta ett exempel för att se detta på ett bättre sätt.

  • Definiera en delprocedur för att skapa ett makro under ny modul.

Koda:

 Sub WhileEx1 () Slut Sub 

  • Ställ in två variabler nummer till en och summan till noll.

Koda:

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

  • Ställ in ett villkor för talvariabel.

Koda:

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

  • Lägg till uttalanden som ska köras för detta under förutsättning.

Koda:

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

  • Lägg till felsökning. Skriv ut summan så att summan av de första 10 naturliga numren kan skrivas ut en och en i omedelbart fönster.

Koda:

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

  • Avsluta slutligen While-loopen med Wend-uttalandet.

Koda:

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

  • Tryck på F5 eller Run-knappen för att köra den här koden och se utgången.

I den här koden är sumvariabeln inställd på noll. Så varje gång antalet ökas med 1 tills det når 10 (med hjälp av loopen) lägger summan variabeln till den föregående summan med det aktuella numret och visar det under det omedelbara fönstret rad för rad eller stegvis summan du kan säga.

Exempel 2

VBA Do-While Loop

Do-While Loop When Condition är kontrollerat innan loopen startar

Det finns två sätt att göra medan loop kan köras.

  • Du kan lägga till villkor innan slingan startar (det är samma som While-Wend-slingan). Här skulle det inte finnas någon iteration av slingan om villkoret misslyckas för första gången.
  • Du kan lägga till villkor i slutet av slingan för att kontrollera. I det här fallet kommer det att finnas minst en iteration av slingan innan tillståndet misslyckas.

Syntax:

Låt oss ta ett exempel för att göra saker tydligare.

  • Sätt i en ny modul och definiera en ny delprocedur för att definiera ett makro.

Koda:

 Sub WhileEx2 () Slut Sub 

  • Definiera en ny variabel I som ett heltal. Och initiera dess värde till 1.

Koda:

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

  • Använd Do-While för att lägga till ett villkor i början av slingan.

Koda:

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

  • Lägg till uttalanden som ska köras så länge villkoret är sant. Lägg till kodraden nedan i makroen.

Koda:

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

Detta uttalande gör att den raden i den första kolumnen kan lagra kvadratvärdet för siffror.

  • Lägg till ytterligare ett uttalande som tillåter en ökning i i med 1 vid varje iteration av slingan.

Koda:

 Sub WhileEx2 () Dim i Dim Integer i = 1 Do While i <= 10 Cells (i, 1) .Värde = i * ii = i + 1 Loop End Sub 

  • Fyll i den här slingan genom att lägga till Loop-sats i slutet av din kod.

Låt oss se lösningen på den här koden:

För värdena på i från 1 (i = 1 initialt) till 10, beräknar det, i * i (dvs kvadratvärde för varje heltal för i) och matar in det under raderna 1 till 10 i kolumn 1 (dvs. kolumn A) . Utgången är inget annat än de kvadratiska värdena för heltal 1 till 10.

  • Kör den här koden genom att slå F5 eller Run-knappen och se utgången.

Du kan se kvadratvärdena för naturliga siffror 1 till 10 som lagras i varje cell separat i kolumn A.

Exempel 3

Do-While Loop When Condition kontrolleras i slutet av loopen

Syntax:

Låt oss se ett exempel för att se slingorna på ett bättre sätt.

  • Sätt i en ny modul och definiera en ny delprocedur för att lagra ett makro.

Koda:

 Sub WhileEx3 () Slut Sub 

  • Definiera ett nytt heltal i samma som i föregående exempel och tilldela ett startvärde till det.

Koda:

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

  • Använd ett Do-villkor för att lägga till de uttalanden som ska köras så länge villkoret är sant.

Koda:

 Sub WhileEx3 () Dim i Dim Integer i = 1 Gör celler (i, 2) .Värde = i * ii = i + 1 End Sub 

Det rekommenderas att använda vitrummet (Tab-tangenten) som en indragning som visas i ovanstående kod, vilket gör att koden kan fungera smidigt och också definierar ett bra strukturformat för koden.

  • Använd Loop medan du lägger till ett villkor som ska kontrolleras för varje uttalande som ska köras.

Koda:

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

  • Kör den här koden genom att slå F5 eller Run-knappen manuellt och se utgången.

Du ser utdata som visas i figuren ovan.

Hur fungerar den här koden i backend?

System multiplicerar värdet på i (från 1) till sig själv och lagrar i den andra kolumnen (Celler (i, 2)) för varje rad en efter en. Koden slutar köra så snart värdet på variabeln i når 10. Utgången kan vara densamma vilket logiskt betyder att båda koderna fungerar som samma. Men den största skillnaden är att sammanställa koden. I det sista exemplet var tillståndet redan där, och systemet visste upp till vilket nummer det måste gå. I denna kod är systemet emellertid inte medvetet om villkoret vid tidpunkten för uttalanden och kör iterationen en efter en. Så länge villkoret är felaktigt slutade koden att köras.

Saker att komma ihåg om VBA medan Loop

  • While-Wend-slingan är föråldrad och är bara för att vara kompatibel med äldre versioner av koder. Du bör använda en Do-While-slinga istället.
  • Do-While-slinga är mer flexibel och välstrukturerad jämfört med While-Wend-slingan.
  • Do-while-loop kan användas på två sätt där du i ett fall kan lägga till villkor först att kontrolleras och sedan lägga till påståenden som uppfyller villkoret. På ett annat sätt kan du lägga till uttalanden först och senare lägga till villkoret som ska kontrolleras.
  • Indragningar rekommenderas att använda i slingor så att koden kan vara mer dynamisk och lättare att läsa.

Rekommenderade artiklar

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

  1. Hur använder jag FIND-funktion i Excel?
  2. Hur använder man VBA TRIM-funktionen?
  3. VBA Arrays | Komplett handledning
  4. Hur använder man VBA Select Case?

Kategori: