Loops
VBA, samt andre programmeringsspråk, tilbyr sløyfer. Looping er en operasjon av å gjenta den samme kodeblokken flere ganger. Excel tilbyr noen typer looper, hver best i ulike situasjoner.
For Neste Loop
Dette er den vanligste typen av en loop. I FOR loop, angir du verdien hvor sløyfe starter og hvor den er ferdig. Koden mellom FOR og neste setning blir gjentatt. Se på følgende eksempel
Eksempel 1:.
For verdi = 0 For å 5MsgBox (verdi) Neste verdi
I eksempelet ovenfor, vil MsgBox I tillegg kan du hoppe over noen verdier ved hjelp av Step verdi Denne gangen MsgBox I følgende eksempel, har vi matrisen med de fire navnene på filmene. Dette VBA-koden vil vise hvert navn inne i MsgBox I neste leksjon skal jeg presentere deg lignende eksempel med FOR. .EACH..NEXT loop. I Excel VBA, kan du bruke FOR..EACH..NEXT loop. Det looper gjennom hvert objekt i en samling. Det kan være innsamling av regneark eller en samling av elementer i en matrise, som presentert i vårt eksempel nedenfor. Du kan ikke erklære filmen variabel i FOR ..EACH..NEXT sløyfe som String. Det må alltid bli erklært som Variant. I motsetning til FOR loop, doesn &rsquo den DO..WHILE sløyfe; t har spesifisert: start- og sluttverdi, istedenfor den går så lenge betingelsen er sann Se på følgende eksempel: I dette eksempel sjekker Excel den første verdi, som er 0. betingelsen er oppfylt, slik at iterasjon av sløyfen blir utført. viser MsgBox DO..UNTIL sløyfe er svært lik den DO..WHILE loop. Forskjellen mellom disse to sløyfer er at i DO..WHILE sløyfen koden kjøres så lenge som betingelsen er sann og i DO..UNTIL sløyfen er det utført så lenge som betingelsen er usann. MsgBox
vindu vise meldingen 6 ganger, viser tall:. 0, 1, 2, 3, 4, 5.
Eksempel 2 :
For verdi = 0 til 5 Trinn 2MsgBox (verdi) Neste verdi
vinduet viser tall: 0, 2, 4. Fordi sløyfe teller til fem vant ’ t komme til nummer 6.
Eksempel 3:
vinduet.
Dim filmer (1 til 4) som Stringmovies (1) = "Matrix" -filmene (2) = "Ringenes Herre" -filmene ( 3) = "Star Wars" -filmene (4) = "The Shawshank Redemption" For Count = 1 Til 4MsgBox (filmer (Count)) Neste Count
For Hver Neste Loop
Dim filmer (1 til 4) som StringDim filmen Som Variantmovies (1) = "Matrix" -filmene (2) = "Ringenes herre" filmer (3) = "Star Wars" -filmene (4) = "The Shawshank Redemption" for hver film I moviesMsgBox (film) Neste movieCAUTION
Do Mens Loop
Eksempel 4:.
Dim teller Som Integercounter = 0Do Mens telleren < 5MsgBox (counter) teller = teller + 1Loop
vindu verdien 0. De neste verdier som også oppfyller vilkåret er 0, 1, 2, 3, 4. Når teller = 5
da tilstanden ikke er oppfylt, og loopen opphører.
gjøre før Loop
Eksempel 5:
Dim teller Som Integercounter = 0Do Inntil teller = 5MsgBox (counter) teller = teller + 1Loop
vil vise: 0, 1 , 2, 3, 4. Når teller = 5 og tilstanden er oppfylt og løkken avsluttes.