VBA Do Loops - Hoe Excel VBA Do Loops te gebruiken?

Inhoudsopgave

Excel VBA Do Loop

VBA Do-lus , het is een set instructies binnen een subprocedure waarbij code een specifiek aantal keren wordt uitgevoerd totdat het gewenste criterium is bereikt of een drempel wordt overschreden of dat veilig kan worden gezegd totdat de vereiste gegevens zijn verkregen.

Terwijl de lus op logische resultaten werkt, blijft de lus heen en weer lopen terwijl de testconditie WAAR is. Op het moment dat de testconditie FALSE retourneert, verlaat deze de lus. Loops vormen het hart van elke programmeertaal. In onze artikelen demonstreren we het belang van loops en manieren om ze te coderen. In dit artikel laten we u zien hoe u Do Loop gebruikt.

Hoe gebruik je de VBA Do Loop?

Voorbeeld # 1 - Conditie aan het einde van de lus

We hebben de conditietest aan het begin van de lus gezien. In de eerdere code hebben we het voorbeeld gezien van het invoegen van serienummers, en de code was zo.

Code:

Sub Do_While_Loop_Example1 () Dim k As Long k = 1 Do While k <= 10 Cellen (k, 1) .Value = kk = k + 1 Loop End Sub

Nu kunt u deze code handmatig uitvoeren of via sneltoets F5 om het resultaat te zien.

Deze code voegt serienummers van 1 tot 10 in.

Maar we kunnen de conditie ook aan het einde van de lus testen. We moeten het woord "while" gebruiken en de conditietest aan het einde na het woord Loop.

De enige verandering hier is om de test aan het einde toe te passen, zoals hieronder weergegeven.

Code:

Sub Do_While_Loop_Example1 () Dim k As Long k = 1 Do Cells (k, 1) .Value = kk = k + 1 Loop While k <= 10 End Sub

Op deze manier kunnen we de voorwaarde ook aan het einde van de lus-instructie testen.

Opmerking: de code wordt uitgevoerd en vervolgens wordt de voorwaarde getest om nog een keer terug te gaan naar de lus of niet. Dit betekent dat het eerst wordt uitgevoerd en de situatie later probeert.

Voorbeeld # 2 - Sommatie met Do While Loop

Stel dat u verkoop- en kostengegevens in uw Excel-sheet heeft. Hieronder staat de set dummy-gegevens die ik heb gemaakt voor berekening.

Nu moeten we de waarde van de winst in kolom C krijgen. Ik heb al een code gemaakt die een klus voor mij zal doen.

Code:

Sub Do_While_Loop_Example2 () Dim k As Long Dim LR As Long k = 2 LR = Cells (Rows.Count, 1) .End (xlUp) .Row Do While k <= LR Cells (k, 3) .Value = Cells (k , 1) + Cellen (k, 2) k = k + 1 Loop End Sub
LR = Cellen (Rows.Count, 1) .End (xlUp) .Row

Deze code identificeert de laatst gebruikte rij in de eerste kolom. Dit maakt de code dynamisch, want als er enige toevoeging of verwijdering van de gegevens is, zal dit mijn sequentietijd aanpassen om de lus uit te voeren.

k = 2

We willen dat de berekening wordt uitgevoerd vanaf de tweede cel. Dus de beginwaarde van k is 2.

Doe While k <= LR

Zoals ik al zei, zal LR de laatst gebruikte rij in de eerste kolom vinden. Dit betekent dat de lus wordt uitgevoerd terwijl k <= de waarde van LR is. In dit geval heb ik 10 rijen, dus LR = 10.

Loop loopt totdat de k-waarde 10 bereikt. Zodra het aantal 10 lussen is gepasseerd, zal het stoppen.

Nu kunt u deze code uitvoeren met sneltoets F5 of handmatig om het resultaat te zien.

Voorbeeld # 3 - Exit-instructie in Do While Loop

We kunnen de lus ook verlaten terwijl de voorwaarde alleen nog TRUE is. Neem hier bijvoorbeeld ook de bovenstaande gegevens.

Stel dat u niet wilt dat de volledige berekening te doen, maar je hoeft alleen maar de eerste 5 rijen van de winst te berekenen, en zodra hij de 6 bereikt ste rij, wil je te komen van de lus. Dit kan gedaan worden door de ALS-functie in Excel te gebruiken. De onderstaande code bevat de exitverklaring.

Code:

Sub Do_While_Loop_Example3 () Dim k As Long Dim LR As Long k = 2 LR = Cells (Rows.Count, 1) .End (xlUp) .Row Do While k 6 Exit Do Cells (k, 3) .Value = Cells ( k, 1) + Cellen (k, 2) k = k + 1 Loop End Sub
"If k> 6 Then Exit Do"

Deze regel code start het exitproces. De lus blijft lopen totdat de waarde van k 6 bereikt. Op het moment dat deze de 6 overschrijdt, voert de If-conditie de code "Exit Do" uit.

Nu kunt u deze code uitvoeren met sneltoets F5 of handmatig om het resultaat te zien.

Dingen om te onthouden

  • Doen. De lus werkt op logische resultaten, en hij blijft de lus heen en weer draaien terwijl de testvoorwaarde WAAR is. Op het moment dat de testconditie FALSE retourneert, verlaat deze de lus.
  • We kunnen de lus op elk moment verlaten door nog een logische test binnen de cirkel aan te passen met behulp van de ALS-functie.
  • Als de conditie of test bovenaan de lus wordt geleverd, zal deze eerst de test controleren en alleen verdergaan als deze WAAR is.
  • Als de voorwaarde of test aan het einde van de lus wordt geleverd, zal het eerst het codeblok binnen de lus-instructie uitvoeren en in de toekomst zal het de voorwaarde testen om te beslissen of terug moet gaan om de lus nog een keer uit te voeren of niet.

Interessante artikelen...