VBA voor volgende - Gids voor het gebruik van Excel VBA For Next Statement

Excel VBA voor volgende lus

VBA For Next-lus is een lus die wordt gebruikt door alle programmeertalen, in deze lus is er een criterium na de for-instructie waarvoor de code in de lus loopt totdat het criterium is bereikt en wanneer het criterium is bereikt, leidt de volgende instructie de procedure naar de volgende stap van de code.

De "For Next" -lus is een van die lussen die heel vaak wordt gebruikt dan andere lussen in VBA-codering. Lussen zullen ons helpen om dezelfde soort taak voor gespecificeerde cellen te herhalen totdat de voorwaarde WAAR is.

FOR LOOP doorloopt het celbereik en voert een specifieke taak uit totdat de voorwaarde WAAR is. Als u bijvoorbeeld de eerste 10 cellen wilt doorlopen en serienummers wilt invoegen die met 1 zijn opgehoogd, kunt u FOR NEXT-lus gebruiken.

Deze lus heeft een variabele nodig om de lus uit te voeren. Met deze variabele kunnen we dynamisch naar de cellen verwijzen.

Het bevat drie parameters.

For Statement = beginpunt tot eindpunt (voer een taak uit) Volgende verklaring

Vanaf het startpunt zal de lus starten en een taak uitvoeren na het voltooien van de taak, naar de volgende lus gaan en dezelfde taak opnieuw uitvoeren in de andere cel. Op deze manier blijft het de opgegeven taak uitvoeren totdat het het eindpunt bereikt.

Hoe gebruik je VBA For Next Loop?

Stel dat u serienummers wilt invoegen van 1 tot 10 in cellen van A1 tot A10. Natuurlijk kunnen we invoegen zoals het schrijven van tien regels code.

Code:

Sub For_Next_Loop_Example1 () Bereik ("A1"). Waarde = 1 bereik ("A2"). Waarde = 2 bereik ("A3"). Waarde = 3 bereik ("A4"). Waarde = 4 bereik ("A5") . Waarde = bereik 5 ("A6"). Waarde = bereik 6 ("A7"). Waarde = bereik 7 ("A8"). Waarde = bereik 8 ("A9"). Waarde = bereik 9 ("A10") .Value = 10 End Sub

Maar wat als ik 100 serienummers wil invoegen? Natuurlijk kan ik geen 100 regels code schrijven om alleen serienummers in te voegen. Dit is waar de schoonheid van de "FOR NEXT" -lus in beeld komt. Volg de onderstaande stappen om de code te minimaliseren.

Stap 1: Eerst moeten we een variabele definiëren. Ik heb de variabelenaam met de naam "Serial_Number" gedeclareerd als een integer datatype.

Code:

Sub For_Next_Loop_Example2 () Dim Serial_Number As Integer End Sub

Stap 2: Nu bestel ik de FOR NEXT-lus toe te passen, ons doel is om serienummers van 1 tot 10 in te voegen, dus dit betekent dat onze lus tien keer moet lopen. Dus de FOR LOOP-verklaring zou zo moeten zijn.

Voor serienummer = 1 tot 10

Volgend serienummer

Code:

Sub For_Next_Loop_Example2 () Dim Serial_Number As Integer For Serial_Number = 1 tot 10 Next Serial_Number End Sub

Stap 3: We hebben de lus toegepast. Zodra de lus is toegepast, moeten we specificeren wat we binnen de lus moeten doen. Ons doel is hier om serienummers van 1 tot 10 in te voegen. Schrijf de code dus als Cells (Serial_Number, 1) .Value = Serial_Number.

Code:

Sub For_Next_Loop_Example2 () Dim Serial_Number As Integer Dim Serial_Number = 1 tot 10 cellen (Serial_Number, 1). Value = Serial_Number Dim Serial_Number End Sub

Stap 4: De reden waarom we Serial_Number hadden opgegeven in de eigenschap CELLS, omdat we hier het hardcenummer voor rijverwijzing niet kunnen specificeren. Elke keer dat de lus wordt uitgevoerd, wil ik het nieuwe serienummer in de nieuwe cel invoegen, niet in dezelfde cel.

Stap 5: Voer de code regel voor regel uit door op de F8-toets te drukken.

Stap 6: Plaats een cursor op de variabele Serial_Number; het toont de huidige waarde van Serial_Number.

Op dit moment is de waarde Serial_Number nul.

Stap 7: Druk nogmaals op de F8-toets, de gele kleur gaat naar de volgende regel code in VBA. Plaats nu een cursor op het Serial_Number.

Nu is de waarde van Serial_Number gelijk aan één omdat nu de lus wordt gestart en onze lus begint bij 1, dus de variabele Serial_Number-waarde is gelijk aan één.

Nog een interessant ding hier is waar de variabele Serial_Number staat, die ook gelijk is aan 1.

Dus in de eigenschap cellen hebben we de code genoemd als:

Cellen (Serial_Number, 1) .Value = Serial_Number

Dit betekent Cellen (1, 1). Waarde = 1. (Cellen (1,1) betekent Rij1 & Kolom1.

Dus in rij nummer 1 en kolom nummer 1 moet de waarde 1 zijn.

Stap 8: Druk nu nog een keer op F8 en kijk wat er gebeurt in Rij1 & Kolom1, dwz cel A1.

We hebben dus 1 als de waarde, dwz de waarde van Serial_Number.

Stap 9: Druk nu nog een keer op de F8-toets. Meestal moet de volgende code worden uitgevoerd, dwz het einde van het substatement. Maar hier gaat het terug naar de "regel hierboven".

Stap 10: Onthoud dat de lus de eerste run al heeft voltooid. Nu keert het voor de tweede keer terug. Plaats nu een cursor op de variabele Serial_Number en kijk wat de waarde is.

Nu is variabele Serial_Number gelijk aan 2 omdat de lus al voor de tweede keer is geretourneerd.

Nu, waar Serial_Number ook is, er is gelijk aan de waarde van 2. Dus de regelcode:

Cellen (Serial_Number, 1). Value = Serial_Number is gelijk aan:

Cellen (2, 1). Waarde = 2. (Cellen (2,1) betekent Rij2 & Kolom1 dwz A2 cel).

Stap 11: voer deze code uit en bekijk de waarde in de A2-cel.

Dus we hebben de tweede serienummerwaarde.

Stap 12: Druk nu op de F8-toets. Het keert weer terug naar de bovenstaande regel om de code te herhalen. Deze keer is de waarde van Serial_Number 3.

Stap 13: Dus waar Serial_Number ook is, er is gelijk aan 3.

Dus de regelcode : Cells (Serial_Number, 1) .Value = Serial_Number is gelijk aan:

Cellen (3, 1). Waarde = 3. (Cellen (3,1) betekent Rij3 & Kolom1 dwz A3 cel).

Stap 14: Druk op F8 om de gemarkeerde regel uit te voeren en de waarde in de A3-cel te zien.

Stap 15: Blijf nu op F8 drukken. Het blijft de serienummers invoeren. De momentwaarde van de variabele Serial_Number is 10, het stopt de lus en verlaat de lus.

Interessante artikelen...