Excel VBA doen tot lus

Doe tot lus blijft de instructies herhalen totdat de voorwaarde / criteria WAAR zijn. Het zal de verklaringen uitvoeren zolang de voorwaarden ONWAAR zijn. Zodra de voorwaarde / criteria WAAR zijn, wordt de lus beëindigd. Het kan worden gezien als het tegenovergestelde van de lus Do While, waarbij de lus loopt zolang de criteria WAAR zijn en worden beëindigd zodra de criteria ONWAAR zijn.

Zie het stroomdiagram hieronder dat de werking van de Do Through-lus verklaart:

Syntaxis van doen tot lus in Excel VBA

Doe tot lus heeft twee soorten syntaxis in Excel VBA.

Syntaxis 1:

 Doe tot (voorwaarde) (Uit te voeren verklaringen) Lus 

Syntaxis 2:

 Do (Uit te voeren verklaringen) Lus tot (voorwaarde) 

Het fundamentele verschil tussen deze twee syntaxis is uitvoering. In de eerste syntaxis controleert de lus altijd of de voorwaarde Waar of Onwaar is. Als het False is, herhaalt het de lus opnieuw. Zodra de voorwaarde / criteria waar zijn, wordt de lus beëindigd. In dit geval is er een mogelijkheid dat de lus bij de eerste iteratie zelf wordt beëindigd (als de voorwaarde waar is). Daarom krijgt u in dat geval geen uitvoer. In de tweede syntaxis zal de lus echter in eerste instantie de instructies uitvoeren en vervolgens controleren of deze waar of onwaar is. Als de voorwaarde False is, wordt opnieuw dezelfde set instructies uitgevoerd en wordt de voorwaarde gecontroleerd. Als de eerste iteratie zelf de voorwaarde True geeft, wordt deze lus beëindigd, maar daarvoor wordt een instructie uitgevoerd. In dat geval krijgen we ten minste één iteratie (als nuluitvoer).

Ten slotte zal de uitvoer van de twee codes hetzelfde zijn. De uitvoering is echter iets dat deze twee verschilt.

Voorbeeld van Excel VBA doen tot lus

Laten we eens kijken naar de voorbeelden van Do till Loop in Excel VBA.

U kunt deze VBA Do Before Loop Excel-sjabloon hier downloaden - VBA Do till Loop Excel-sjabloon

Voorbeeld # 1 - VBA doen tot lus wanneer voorwaarden aan het begin worden gecontroleerd

Volg de onderstaande stappen om de Do Do-lus toe te passen in Excel VBA.

Stap 1: Voeg een nieuwe module in onder Visual Basic Editor (VBE) om code te kunnen schrijven.

Stap 2: Definieer een subprocedure waarmee de macrocode die u gaat schrijven, kan worden opgeslagen.

Code:

 Sub Do_Until_Ex1 () Einde Sub 

Stap 3: Definieer een nieuwe variabele "X" met gegevenstype als "Lang". Deze variabele kan worden gebruikt als een voorwaarde / criterium onder Do Do-lus.

Code:

 Sub Do_Until_Ex1 () Dim X As Long End Sub 

Stap 4: Stel de beginwaarde in op 1 voor de variabele X.

Code:

 Sub Do_Until_Ex1 () Dim X zo lang X = 1 einde Sub 

Stap 5: Start de lus met trefwoorden 'Doe tot'.

Code:

 Sub Do_Until_Ex1 () Dim X zo lang X = 1 doen tot einde Sub 

Stap 6: Geef de criteria op als X = 11 onder Tot doen. Dit is een voorwaarde waardoor de lus kan worden verbroken wanneer True is. Dit betekent dat de lus loopt tot de waarde van X = 11. Zodra de waarde voor X gelijk is aan 11, wordt de lus beëindigd.

Code:

 Sub Do_Until_Ex1 () Dim X zo lang X = 1 doen tot X = 11 Einde Sub 

Stap 7: Gebruik nu VBA-cellen. Waardefunctie om het kwadraat van elk getal toe te voegen tot X onder de eerste kolom.

Code:

 Sub Do_Until_Ex1 () Dim X zo lang X = 1 doen tot X = 11 cellen (X, 1) Waarde = X * X End Sub 

Stap 8: Nogmaals, we moeten de toename in X met 1 instellen, zodat elke keer dat de lus wordt uitgevoerd en de toestand controleert, deze naar het volgende nummer gaat en een kwadraatwaarde ervan opslaat in de respectieve cel tot nummer 11.

Code:

 Sub Do_Until_Ex1 () Dim X zo lang X = 1 doen tot X = 11 cellen (X, 1). Waarde = X * XX = X + 1 End Sub 

Stap 9: Voltooi deze Do Tot-lus door het trefwoord "Loop" in te voeren aan het einde van de code.

Code:

 Sub Do_Until_Ex1 () Dim X zo lang X = 1 doen tot X = 11 cellen (X, 1). Waarde = X * XX = X + 1 Loop End Sub 

In deze code wilden we vierkante waarden hebben voor getallen die beginnen van 1 tot 11 (zodra een waarde 11 is, wordt de lus beëindigd). Onder elke cel van Excel-blad (tot cel nummer 11) worden de waarden opgeslagen. Toename van 1 eenheid maakt het mogelijk dat een getal telkens met 1 wordt verhoogd in de vorige waarde van X en de kwadraatwaarde van dat nummer wordt in de respectieve cel afgedrukt. De waarde Kwadraat voor 3 wordt bijvoorbeeld afgedrukt onder de derde cel van het actieve excel-vel. Deze lus loopt zolang X niet gelijk is aan 11. Daarom krijgen we onder cel A1 tot cel A10 de gekwadrateerde waarden van het getal beginnend van 1 tot 10 (bij nummer 11 beëindigd).

Stap 10: Druk op de knop Run of druk op F5 om deze code uit te voeren en de uitvoer te bekijken.

Voorbeeld # 2 - Doe tot-lus wanneer voorwaarden aan het einde van de lus worden gecontroleerd

Volg de onderstaande stappen om de Do Do-lus toe te passen in Excel VBA.

Stap 1: Definieer een nieuwe subprocedure onder de VBE-module.

Code:

 Sub Do_Until_Ex2 () Einde Sub 

Stap 2: Definieer een variabele "Y" met gegevenstype als "Lang". Deze variabele is nuttig om de voorwaarden in een lus te plaatsen.

Code:

 Sub Do_Until_Ex2 () Dim Y As Long End Sub 

Stap 3: Stel de beginwaarde van variabele "Y" in op 1.

Code:

 Sub Do_Until_Ex2 () Dim Y zo lang Y = 1 einde Sub 

Stap 4: Voeg Do voorwaarde toe door Do op de volgende regel te typen nadat u de beginwaarde van Y op 1 hebt ingesteld.

Code:

 Sub Do_Until_Ex2 () Dim Y Zo lang Y = 1 Do End Sub 

Stap 5: Voeg het stuk code toe dat u wilt uitvoeren onder Do loop. Hier nemen we hetzelfde voorbeeld als hierboven (het zal ons helpen te weten te komen hoe de uitgangen hetzelfde zijn, maar de compilaties verschillen voor twee van deze codes).

Code:

 Sub Do_Until_Ex2 () Dim Y zo lang Y = 1 Do Sheets ("Voorbeeld 2"). Cellen (Y, 1). Waarde = Y * Y Einde Sub 

Stap 6: Na elke iteratie van de lus, wilde u dat de waarde met 1 eenheid werd verhoogd, stel hiervoor een opdracht in onder Do sectie.

Code:

 Sub Do_Until_Ex2 () Dim Y zo lang Y = 1 Do Sheets ("Voorbeeld 2"). Cellen (Y, 1). Waarde = Y * YY = Y + 1 End Sub 

Stap 7: Voeg een slotverklaring voor deze lus toe met een trefwoord als "Lus".

Code:

 Sub Do_Until_Ex2 () Dim Y zo lang Y = 1 Do Sheets ("Voorbeeld 2"). Cellen (Y, 1). Waarde = Y * YY = Y + 1 Loop End Sub 

Vasthouden! Er is nog iets meer. U moet de criteria tot / voorwaarde onder deze lus toevoegen, deze keer na het trefwoord Loop. Hiermee kan de compiler de toestand aan het einde van de lus controleren.

Stap 8: Voeg toe tot Y = 11 als een voorwaarde na Loop-trefwoord.

Code:

 Sub Do_Until_Ex2 () Dim Y zo lang Y = 1 Do Sheets ("Voorbeeld 2"). Cellen (Y, 1). Waarde = Y * YY = Y + 1 lus tot Y = 11 End Sub 

Stap 9: Voer deze code uit door op F5 of op de knop Run te drukken en zie de magie onder blad met de naam "Voorbeeld 2".

Hoe werkt deze code?

Het systeem kwadrateert telkens tot de waarde van Y onder de lus en slaat het rij voor rij op onder de tweede kolom van het blad met de naam "Voorbeeld 2". Na elke iteratie wordt de huidige waarde van Y met 1 eenheid verhoogd en wordt de bijgewerkte waarde gekwadrateerd en opgeslagen. Zolang de waarde kleiner is dan de criteriumwaarde (Y = 11), zal de code het kwadraat doen en opslaan. Zodra de waardecompiler de waarde Y = 11 bereikt, stopt hij met het uitvoeren van de code en wordt deze beëindigd.

Beide codes geven een vergelijkbare uitvoer, maar logischerwijs is er een verschil in compilaties voor beide. In het eerste type code wordt de voorwaarde gecontroleerd aan het begin van de lus en als deze Onwaar is, begint alleen de lus de volgende expressie te evalueren. In het tweede voorbeeld begint de code echter met een lus en worden Do-instructies aan het begin uitgevoerd (waarbij de waarden in een buffergeheugen worden opgeslagen voor de uitvoeringsinstructies). Aan het einde van de lus komt de compiler met een criterium en controleert dit hetzelfde met de bufferwaarde.

Dingen om te onthouden

  • VBA Do Tot is precies het omgekeerde geval van Excel VBA Do While. VBA Do While-lus loopt zolang de voorwaarde WAAR is. Zodra de voorwaarde ONWAAR is, wordt de lus Do While beëindigd. Aan de andere kant wordt VBA Do Tot uitgevoerd zolang de voorwaarde ONWAAR is. Zodra de voorwaarde WAAR is, wordt de lus beëindigd.
  • Het heeft twee manieren van procedure, een waarbij de voorwaarde wordt gecontroleerd aan het begin van de lus en een andere waarbij de voorwaarde wordt gecontroleerd aan het einde van de lus.

Aanbevolen artikelen

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

  1. VBA While Loop
  2. ZOEKEN Formule in Excel
  3. Volledige tutorials over VBA Loops
  4. Opzoektabel in Excel

Categorie: