Excel VBA Do Loop
VBA Do loop , det er et sæt instruktioner inde i en underprocedure, hvor koden kører et bestemt antal gange, indtil de ønskede kriterier er nået, eller en hvilken som helst tærskel overskrides eller sikkert at sige, indtil der kræves data.
Mens løkken fungerer på logiske resultater, kører den løbende frem og tilbage, mens testtilstanden er SAND. I det øjeblik testtilstanden returnerer FALSE, forlader den sløjfen. Sløjfer er hjertet i ethvert programmeringssprog. I vores artikler demonstrerer vi vigtigheden af sløjfer og måder at kode dem på. I denne artikel viser vi dig, hvordan du bruger Do Loop.

Hvordan bruges VBA Do Loop?
Eksempel # 1 - Tilstand i slutningen af loop
Vi har set tilstandstesten i begyndelsen af sløjfen. I den tidligere kode har vi set eksemplet med at indsætte serienumre, og koden var sådan.
Kode:
Sub Do_While_Loop_Example1 () Dim k As Long k = 1 Do While k <= 10 Cells (k, 1). Value = kk = k + 1 Loop End Sub

Nu kan du køre denne kode manuelt eller gennem genvejstasten F5 for at se resultatet.
Denne kode indsætter serienumre fra 1 til 10.

Men vi kan også teste tilstanden i slutningen af sløjfen også. Vi er nødt til at bruge ordet "while" og tilstandstesten i slutningen efter ordet Loop.
Den eneste ændring her er at anvende testen i slutningen, som vist nedenfor.
Kode:
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

På denne måde kan vi også teste tilstanden i slutningen af loop-erklæringen.
Bemærk: Koden kører, så tester den betingelsen for at gå tilbage til loop en gang mere eller ej. Dette betyder, at den kører først og derefter prøver situationen senere.Eksempel # 2 - Sammenfatning ved hjælp af Do While Loop
Antag, at du har salgs- og omkostningsdata i dit excel-ark. Nedenfor er det sæt dummy-data, jeg har oprettet til beregning.

Nu skal vi få værdien af fortjeneste i kolonne C. Jeg har allerede oprettet en kode, der vil gøre et job for mig.
Kode:
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 celler (k, 3). Value = Cells (k , 1) + Celler (k, 2) k = k + 1 Loop End Sub

LR = Celler (Rækker.Tælling, 1) .End (xlUp) .Række
Denne kode identificerer den sidst anvendte række i den første kolonne. Dette gør koden dynamisk, for hvis der er nogen tilføjelse eller sletning af dataene, vil dette justere min sekvenstid for at køre sløjfen.
k = 2
Vi ønsker, at beregningen skal ske fra den anden celle og fremefter. Så k's indledende værdi er 2.
Gør mens k <= LR
Som jeg fortalte, finder LR den sidst anvendte række i den første kolonne. Dette betyder, at løkken kører, mens k er <= til værdien af LR. I dette tilfælde har jeg 10 rækker, så LR = 10.
Loop kører indtil k-værdien når 10. Når beløbet har passeret 10 sløjfer, stopper det.
Nu kan du køre denne kode ved hjælp af genvejstast F5 eller manuelt for at se resultatet.

Eksempel # 3 - Afslutningserklæring i Do While Loop
Vi kan også forlade sløjfen, mens betingelsen stadig kun er SAND. Tag f.eks. Ovenstående data også her.

Antag, at du ikke ønsker at gøre den fulde beregning, men du behøver kun at beregne de første 5 rækker profit, og så snart den når 6 th række, du ønsker at komme ud af løkken. Dette kan gøres ved hjælp af IF-funktionen i excel. Nedenstående kode inkluderer exit-erklæringen.
Kode:
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 Derefter forlader celler (k, 3). Value = Cells ( k, 1) + Celler (k, 2) k = k + 1 Loop End Sub

“Hvis k> 6 Afslut derefter Do”
Denne kodelinje vil starte exitprocessen. Loop vil fortsætte med at køre, indtil værdien af k når 6. Det øjeblik det overstiger 6, Hvis tilstanden udfører koden, "Exit Do."
Nu kan du køre denne kode ved hjælp af genvejstast F5 eller manuelt for at se resultatet.

Ting at huske
- Gør. Sløjfen fungerer på logiske resultater, og den fortsætter med at køre sløjfen frem og tilbage, mens testtilstanden er SAND. I det øjeblik testtilstanden returnerer FALSE, forlader den sløjfen.
- Vi kan forlade sløjfen til enhver tid ved at justere en mere logisk test inde i cirklen ved hjælp af IF-funktionen.
- Hvis tilstanden eller testen leveres øverst i sløjfen, vil den først kontrollere testen og kun gå videre, hvis den er SAND.
- Hvis betingelsen eller testen leveres i slutningen af sløjfen, udfører den først kodeblokken inde i sløjfeerklæringen, og i fremtiden vil den teste tilstanden for at beslutte, om den skal gå tilbage for at køre sløjfen en gang til eller ikke.