VBA While Loop

VBA While Loop is een belangrijk en krachtig concept dat je misschien in de meeste programmeertalen hebt gezien. Als u dit concept onder VBA beheerst, kunt u krachtige scripts voorbereiden die met spreadsheetgegevens op totaal verschillende en handige manieren werken. Maak je in dit artikel klaar om de wereld van verschillende while-lussen te verkennen, samen met meerdere voorbeelden die je te hulp komen.

Het doel van While-lus is een bepaald blok uitspraken te herhalen op voorwaarde dat aan een voorwaarde wordt voldaan. Meer precies, terwijl lus de overeenkomstige instructie herhaalt terwijl een voorwaarde Waar is. Zodra de voorwaarde False wordt (voldoet niet), wordt de lus beëindigd.

Er zijn in principe twee soorten while-lus in Microsoft Excel VBA:

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

VBA While-Wend Loop bestaat om de code compatibel te maken met een oudere versie van codes. De VBA Do-While is de bijgewerkte versie van While-lus die flexibeler en gestructureerder is in vergelijking met de vorige en wordt aanbevolen voor gebruik door de Microsoft-community.

Voor het geval je je afvraagt ​​wat Wend bedoelt, het is een korte vorm van While End en werkt als hetzelfde.

Voorbeelden van VBA While Loop

Laten we diep ingaan op de stapsgewijze handleiding van verschillende soorten VBA While Loops.

U kunt deze VBA While Loop Excel-sjabloon hier downloaden - VBA While Loop Excel-sjabloon

Voorbeeld 1

VBA While-Wend Loop

Syntaxis:

Laten we een voorbeeld nemen om dit op een betere manier te bekijken.

  • Definieer een subprocedure om een ​​macro te maken onder een nieuwe module.

Code:

 Sub WhileEx1 () Einde Sub 

  • Stel twee variabelen Nummer in op Eén en Sum op Nul.

Code:

 Sub WhileEx1 () Nummer = 1 Som = 0 Einde Sub 

  • Stel een while-voorwaarde in voor Number-variabele.

Code:

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

  • Voeg instructies toe die moeten worden uitgevoerd voor deze while-voorwaarde.

Code:

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

  • Voeg Debug.Print Sum toe zodat de som van de eerste 10 natuurlijke getallen één voor één in Direct venster kan worden afgedrukt.

Code:

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

  • Beëindig ten slotte de While-lus met de verklaring van Wend.

Code:

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

  • Druk op F5 of op de knop Uitvoeren om deze code uit te voeren en de uitvoer te bekijken.

In deze code is de somvariabele ingesteld op nul. Dus telkens wanneer het getal met 1 wordt verhoogd totdat het 10 bereikt (met gebruik van while-lus), voegt de somvariabele de vorige som met het huidige nummer toe en wordt deze rij onder rij weergegeven in het venster Direct of stapsgewijs.

Voorbeeld 2

VBA Do-While Loop

Do-While-lus wanneer Conditie is aangevinkt voordat de lus begint

Er zijn twee manieren waarop doen terwijl lus kan worden uitgevoerd.

  • U kunt een voorwaarde toevoegen voordat de lus begint (deze is hetzelfde als de lus Terwijl u Wendt). Hier zou er geen iteratie van de lus zijn als de voorwaarde voor het eerst faalt.
  • U kunt de voorwaarde aan het einde van de lus toevoegen om te controleren. In dit geval zal er ten minste één iteratie van de lus zijn voordat de voorwaarde mislukt.

Syntaxis:

Laten we een voorbeeld nemen om dingen duidelijker te maken.

  • Voeg een nieuwe module in en definieer een nieuwe subprocedure om een ​​macro te definiëren.

Code:

 Sub WhileEx2 () Einde Sub 

  • Definieer een nieuwe variabele I als een geheel getal. En stel de waarde in op 1.

Code:

 Sub WhileEx2 () Dim i Dim Geheel getal i = 1 Einde Sub 

  • Gebruik Do-While om een ​​voorwaarde aan het begin van de lus toe te voegen.

Code:

 Sub WhileEx2 () Dim i Dim Geheel getal i = 1 Do While i <= 10 Einde Sub 

  • Voeg uit te voeren instructies toe zolang de voorwaarde waar is. Voeg de onderstaande coderegel toe aan de macro.

Code:

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

Met deze instructie kan de vierde rij van de eerste kolom de kwadraatwaarde van getallen opslaan.

  • Voeg nog een instructie toe die een toename in i met 1 mogelijk maakt bij elke iteratie van de lus.

Code:

 Sub WhileEx2 () Dim i Dim Integer i = 1 Do While i <= 10 Cellen (i, 1) .Waarde = i * ii = i + 1 Loop End Sub 

  • Voltooi deze lus door een lus-instructie toe te voegen aan het einde van je code.

Laten we de oplossing van deze code bekijken:

Voor de waarden van i van 1 (aanvankelijk i = 1) tot 10, berekent het i * i (dwz kwadraatwaarde voor elke gehele waarde van i) en voert het in onder respectievelijk rijen 1 tot 10 van kolom 1 (dwz kolom A) . De output is niets anders dan de gekwadrateerde waarden van gehele getallen 1 tot 10.

  • Voer deze code uit door op F5 of de knop Uitvoeren te drukken en de uitvoer te bekijken.

U kunt de kwadraatwaarden van natuurlijke getallen 1 tot en met 10 zien die in elke cel afzonderlijk van kolom A zijn opgeslagen.

Voorbeeld 3

Do-While-lus wanneer Conditie is aangevinkt aan het einde van de lus

Syntaxis:

Laten we een voorbeeld bekijken om de looping op een betere manier te bekijken.

  • Voeg een nieuwe module in en definieer een nieuwe subprocedure om een ​​macro op te slaan.

Code:

 Sub WhileEx3 () Einde Sub 

  • Definieer een nieuw geheel getal i hetzelfde als in het vorige voorbeeld en wijs er een beginwaarde aan toe.

Code:

 Sub WhileEx3 () Dim i Dim Geheel getal i = 1 Einde Sub 

  • Gebruik de voorwaarde Do om de uit te voeren instructies toe te voegen zolang de voorwaarde waar is.

Code:

 Sub WhileEx3 () Dim i Dim Geheel getal i = 1 Do Cells (i, 2). Waarde = i * ii = i + 1 End Sub 

Het wordt aanbevolen om witruimte (Tab-toets) te gebruiken als een inspringing in de bovenstaande code, waardoor de code soepel kan worden uitgevoerd en ook een goede structuurindeling voor de code wordt gedefinieerd.

  • Gebruik Loop while om een ​​voorwaarde toe te voegen die moet worden gecontroleerd voor elke uit te voeren instructie.

Code:

 Sub WhileEx3 () Dim i Dim Integer i = 1 Do Cells (i, 2) .Waarde = i * ii = i + 1 Loop While i <= 10 End Sub 

  • Voer deze code uit door handmatig op F5 of op de knop Run te drukken en de uitvoer te bekijken.

U ziet de uitvoer zoals weergegeven in de bovenstaande afbeelding.

Hoe werkt deze code in de backend?

Systeem vermenigvuldigt de waarde van i (beginnend vanaf 1) tot zichzelf en slaat voor elke rij één voor één op in de tweede kolom (cellen (i, 2)). De code stopt met uitvoeren zodra de waarde van de variabele i de 10 bereikt. De uitvoer kan hetzelfde zijn, wat logisch betekent dat beide codes hetzelfde werken. Maar het belangrijkste verschil zit in het compileren van de code. In het laatste voorbeeld was de toestand al aanwezig en wist het systeem tot welk nummer het moest gaan. In deze code is het systeem echter niet op de hoogte van de toestand op het moment van uitvoering van instructies en voert het de iteratie één voor één uit. Zolang de voorwaarde onwaar is, wordt de code gestopt met uitvoeren.

Dingen om te onthouden over VBA While Loop

  • De While-Wend-lus is verouderd en is alleen compatibel met oudere versies van codes. Gebruik in plaats daarvan een Do-While-lus.
  • Do-While-lus is flexibeler en beter gestructureerd in vergelijking met de While-Wend-lus.
  • De Do-while-lus kan op twee manieren worden gebruikt, waarbij u in één geval eerst de voorwaarde kunt toevoegen om te controleren en vervolgens verklaringen toevoegt die aan de voorwaarde voldoen. Op een andere manier kunt u eerst instructies toevoegen en later de te controleren voorwaarde toevoegen.
  • Inspringen wordt aanbevolen om in lussen te gebruiken, zodat de code dynamischer en gemakkelijker te lezen kan zijn.

Aanbevolen artikelen

Dit is een handleiding voor VBA Do While Loop geweest. Hier hebben we besproken hoe je Excel VBA Do While Loop kunt gebruiken, samen met enkele praktische voorbeelden en een downloadbare Excel-sjabloon. U kunt ook onze andere voorgestelde artikelen doornemen -

  1. Hoe de FIND-functie in Excel te gebruiken?
  2. Hoe de VBA TRIM-functie te gebruiken?
  3. VBA-reeksen | Volledige zelfstudie
  4. Hoe de VBA Select-case gebruiken?

Categorie: