VBA-løkker - Liste over topp 4 typer løkker (med eksempler)

Innholdsfortegnelse

Excel VBA-løkker

Sløyfer brukes ofte i alle programmeringsspråkene, der det er et visst behov eller kriterier når vi trenger en bestemt kode for å kjøre en bestemt tid, bruker vi sløyfer for disse kodene, nå er det mange typer sløyfer i VBA som Do mens, Gjør til, For sløyfe og For hver sløyfe, hjelper disse sløyfene koden til å utføres til betingelsen er oppfylt.

La meg komme med denne uttalelsen helt i begynnelsen. "Hvis du vil mestre i VBA, må du fullføre mesteren begrepet løkker i VBA-makroer."

Loop er ingenting annet enn å gå gjennom en rekke celler, gå gjennom en rekke objekter for å gjenta den samme oppgaven for samlingen av celler eller objekter. I stedet for å gjøre oppgaven i et eget sett med kodelinjer ved hjelp av sløyfer, kan vi forkorte kodenes lengde til minst mulig.

Liste over topp 4 typer VBA-løkker

  1. For Next Loop
  2. For hver løkke
  3. Gjør Mens Loop
  4. Gjør til løkken

La oss se hver av disse typene i detalj.

Type # 1 - For neste løkke

For Next loop lar vi oss løpe gjennom celleområdet og utføre den samme oppgaven for hver celle som er spesifisert i loop. Her må vi fortelle startnummer og sluttnummer.

Eksempel

For eksempel, hvis du vil sette inn serienumre fra 1 til 10, nedenfor er den tradisjonelle måten å sette inn serienumre på.

Under Serienummer ()

Område (“A1”). Verdi = 1
Område (“A2”). Verdi = 2
Område (“A3”). Verdi = 3
Område (“A4”). Verdi = 4
Område (“A5”). Verdi = 5
Område (“A6”). Verdi = 6
Område (“A7”). Verdi = 7
Område (“A8”). Verdi = 8
Område (“A9”). Verdi = 9
Område (“A10”). Verdi = 10

Slutt Sub

Ser bra ut, ikke sant? Men problemet her er bare 10 ganger vi trenger å utføre denne oppgaven. Men forestill deg hva om du vil sette inn 100 eller 1000 tall, kan du skrive koden 100 eller 1000 linjer. Det er umulig, og det er her skjønnheten til For Next-sløyfen kommer til nytte.

Trinn 1: Åpne makro og erklær variabelen i som heltall.

Sub Insert_Serial_Number ()

Dim i As Integer

Slutt Sub

Trinn 2: Åpne nå For Loop . Her nevner start og slutt på sløyfen ved hjelp av variabelen i.

Trinn 3: Skriv nå koden du vil utføre. Vi må sette inn tall fra 1 til 10 i A1 til A10 celler. I stedet for å bruke Range-metoden, bruk Cells-metoden.

Det spør radnummeret siden vi allerede har deklarert variabelen i som et heltall først. Verdien er 1. Så nevn at jeg liker radnummeret ditt og 1 som kolonnenummer.

Nå skal verdien av den nåværende celleverdien være en, i stedet for å nevne nummer en omtale i som verdien. Fordi hver gang loop går i , øker verdien med 1.

Trykk nå på F8-tasten for å gå inn i en og en linje. Trykk på F8 til den når For loop.

Denne gule fargen er en indikasjon på at den valgte kodelinjen er i ferd med å kjøre. Plasser en markør på I, og den viser verdien som null.

Trykk en gang til F8-tasten og legg markøren på i & nå er verdien 1.

Så verdiene jeg i overalt er nå lik 1. “ Cells (I, 1) .Value = I” midler Cells (1, 1) .Value = 1.

Trykk på F8-tasten og se verdien i celle A1. Du må se 1 i celle A1.

Nå, hvis du trykker på F8-tasten, vil den gå tilbake til For-sløyfen en gang til fordi endegrensen for variabelen i er 10. Denne gangen vil jeg ha verdi 2.

For den neste sløyfen vil kjøre 10 ganger og sette inn serienumre fra 1 til 10.

Type # 2 - For hver løkke

For hver løkke i VBA er for å gå gjennom en samling objekter. For neste løkke sløyfer gjennom cellene og utføre oppgaven, og For hver sløyfe sløyfer gjennom objekter som regneark, diagrammer, arbeidsbøker, former.

Ved hjelp av denne sløyfen kan vi gå gjennom alle regnearkene og utføre noen oppgaver. For eksempel kan du gå gjennom alle regnearkene for å skjule og skjule regneark.

Eksempel 1

Hvis du vil skjule alle regneark bortsett fra arket du jobber med, hvordan vil du gjøre det? Hvis du har 20 ark i arbeidsboken, er det en tidkrevende prosess. Men med FOR HVER loop kan vi utføre denne oppgaven.

Jeg har 5 ark, og jeg vil skjule alle arkene bortsett fra at arket "Main" under koden vil gjøre oppgaven for meg.

Under til_Hide_All_Sheet ()

Dim Ws Som regneark

For hver Ws i ActiveWorkbook.Worksheets

Hvis Ws.Name “Main”, så
Ws.Visible = xlSheetVeryHidden
End Hvis

Neste Ws

Slutt Sub

Eksempel 2

Hvis du vil skjule alle skjulte ark, vil koden nedenfor gjøre jobben for deg.

Under til_UnHide_Specific_Sheet ()

Dim Ws Som regneark

For hver Ws i ActiveWorkbook.Worksheets

Ws.Visible = xlSheetVisible

Neste Ws

Slutt Sub

Type # 3 - Do While Loop

Gjør mens loop utfører oppgaven mens den gitte tilstanden er SANT, og når tilstanden blir FALSE, vil den stoppe loopingen. I motsetning til de to andre løkkene, tester Do While tilstanden på slutten av løkken, ikke i begynnelsen.

Jeg vil vise deg eksemplet på å sette inn serienumre med Do While-løkke.

Sub Do_While_Example ()

Dim i As Integer

i = 1
Gjør mens jeg <11
celler (i, 1). Verdi = i
i = i + 1
løkke

Slutt Sub

Ovennevnte sløyfe vil kjøre mens jeg er mindre enn 11 og fortsetter å sette inn serienumrene. I det øyeblikket jeg blir større enn 11, vil det slutte å løkke.

Type # 4 - Gjør til løkken

I motsetning til Gjør mens-sløyfe, kjøres ikke Gjør-sløyfen mens tilstanden er SANT; heller, det løkker til tilstanden er FALSK. Se for eksempel på koden nedenfor.

Sub Do_Until_Example ()

Dim i As Integer

i = 1
Gjør inntil jeg = 11
celler (i, 1). Verdi = i
i = i + 1
løkke

Slutt Sub

Den eneste forskjellen mellom Gjør mens og gjør til-sløyfen er operatøren vi spesifiserer. I Do, Mens vi nevnte å kjøre løkken mens i er mindre enn (<), 11, men i gjør til løkke, nevnte vi å kjøre løkken Inntil jeg er lik (=) til 11.

Ting å huske

  • Det er et mer avansert Excel VBA-løkkeeksempel, men vi vil dekke hver enkelt av dem i en egen artikkel i detalj.
  • Hver sløyfe er for objektvariabler.
  • Selv om gjør mens og gjør til ser det samme ut, og det er veldig viktig å nevne tilstanden.
  • Sløyfer er veldig viktige begreper.

Interessante artikler...