VBA Do Loops - Hvordan bruker jeg Excel VBA Do Loops?

Innholdsfortegnelse

Excel VBA Do Loop

VBA Do-sløyfe , det er et sett med instruksjoner i en underprosedyre hvor koden kjører et bestemt antall ganger til de ønskede kriteriene er nådd eller en hvilken som helst terskel er overskredet eller trygt å si det til de nødvendige data er oppnådd.

Mens løkken fungerer på logiske resultater, fortsetter den å løpe frem og tilbake mens testtilstanden er SANT. I det øyeblikket testtilstanden returnerer FALSE, vil den gå ut av sløyfen. Sløyfer er hjertet i ethvert programmeringsspråk. I artiklene våre viser vi viktigheten av løkker og måter å kode dem på. I denne artikkelen viser vi deg hvordan du bruker Do Loop.

Hvordan bruker jeg VBA Do Loop?

Eksempel 1 - Tilstand på slutten av Loop

Vi har sett tilstandstesten i begynnelsen av løkken. I den tidligere koden har vi sett eksemplet på å sette inn serienumre, og koden var slik.

Kode:

Sub Do_While_Loop_Example1 () Dim k Så lenge k = 1 Gjør mens k <= 10 celler (k, 1). Verdi = kk = k + 1 Loop End Sub

Nå kan du kjøre denne koden manuelt eller gjennom hurtigtast F5 for å se resultatet.

Denne koden vil sette inn serienumre fra 1 til 10.

Men vi kan også teste tilstanden på slutten av løkken også. Vi må bruke ordet "while" og tilstandstesten på slutten etter ordet Loop.

Den eneste endringen her er å bruke testen på slutten, 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åten kan vi også teste tilstanden på slutten av loop-setningen.

Merk: Koden vil kjøre, så tester den tilstanden for å gå tilbake til loop en gang til eller ikke. Dette betyr at den vil kjøre først og deretter prøve situasjonen senere.

Eksempel 2 - Oppsummering ved bruk av Do While Loop

Anta at du har salgs- og kostnadsdata i excel-arket ditt. Nedenfor er settet med dummy data jeg har laget for beregning.

Nå må vi få verdien av fortjeneste i kolonne C. Jeg har allerede opprettet en kode som vil gjøre en jobb for meg.

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 Cells (k, 3). Value = Cells (k , 1) + Celler (k, 2) k = k + 1 Loop End Sub
LR = celler (rader, antall, 1). Slutt (xlUp). Rad

Denne koden vil identifisere den sist brukte raden i den første kolonnen. Dette gjør koden dynamisk, for hvis det er noe tillegg eller sletting av dataene, vil dette justere sekvenstiden min for å kjøre løkken.

k = 2

Vi ønsker at beregningen skal gjøres fra den andre cellen og utover. Så ks opprinnelige verdi er 2.

Gjør mens k <= LR

Som jeg sa, vil LR finne den siste brukte raden i den første kolonnen. Dette betyr at sløyfen vil kjøre mens k er <= til verdien av LR. I dette tilfellet har jeg 10 rader, så LR = 10.

Loop vil løpe til k-verdien når 10. Når beløpet har passert 10 løkker, vil det stoppe.

Nå kan du kjøre denne koden ved hjelp av hurtigtasten F5 eller manuelt for å se resultatet.

Eksempel # 3 - Avslutt uttalelse i Do While Loop

Vi kan også gå ut av sløyfen mens tilstanden fremdeles bare er SANT. Ta for eksempel også dataene ovenfor her.

Anta at du ikke ønsker å gjøre hele beregningen, men du trenger bare å beregne de 5 første radene av profitt, og så snart den når 6 th rad, vil du komme ut av loopen. Dette kan gjøres ved å bruke IF-funksjonen i excel. Koden nedenfor inkluderer utgangserklæ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 deretter Exit Do Cells (k, 3). Value = Cells ( k, 1) + Celler (k, 2) k = k + 1 Loop End Sub
“Hvis k> 6 Gå deretter ut Do”

Denne kodelinjen vil starte avslutningsprosessen. Loop vil fortsette å kjøre til verdien av k når 6. I det øyeblikket den overstiger 6, Hvis tilstanden vil utføre koden, "Exit Do."

Nå kan du kjøre denne koden ved hjelp av hurtigtasten F5 eller manuelt for å se resultatet.

Ting å huske

  • Gjøre. Sløyfen fungerer på logiske resultater, og den fortsetter å løpe sløyfen frem og tilbake mens testtilstanden er SANT. I det øyeblikket testtilstanden returnerer FALSE, vil den gå ut av sløyfen.
  • Vi kan når som helst gå ut av sløyfen ved å justere en mer logisk test inne i sirkelen ved å bruke IF-funksjonen.
  • Hvis tilstanden eller testen leveres øverst i sløyfen, vil den først sjekke testen og bare gå videre hvis den er SANT.
  • Hvis tilstanden eller testen leveres på slutten av sløyfen, vil den først utføre kodeblokken inne i sløyfesetningen, og i fremtiden vil den teste tilstanden for å avgjøre om den vil gå tilbake for å kjøre sløyfen en gang til eller ikke.

Interessante artikler...