VBA-løkker - Liste over top 4 typer sløjfer (med eksempler)

Indholdsfortegnelse

Excel VBA-sløjfer

Sløjfer bruges almindeligvis på alle programmeringssprog, hvor der er et bestemt behov eller et kriterium, når vi har brug for en bestemt kode for at køre bestemte tidspunkter, hvor vi bruger sløjfer til disse koder, nu er der mange typer sløjfer i VBA som Do mens, Gør indtil, For løkke og For hver løkke, hjælper disse sløjfer med at kode til at udføre, indtil betingelsen er opfyldt.

Lad mig komme med denne erklæring helt i starten. "Hvis du vil mestre i VBA, skal du udfylde masteren begrebet sløjfer i VBA-makroer."

Loop er intet andet end at gå gennem en række celler, gennem en række objekter for at gentage den samme opgave til indsamling af celler eller objekter. I stedet for at udføre opgaven i et separat sæt linjer med koder ved hjælp af sløjfer, kan vi forkorte længden af ​​koden til den mindst mulige.

Liste over top 4 typer af VBA-løkker

  1. For Next Loop
  2. For hver løkke
  3. Gør Mens Loop
  4. Gør indtil løkke

Lad os se hver af disse typer i detaljer.

Type nr. 1 - til næste løkke

For Next-sløjfe giver os mulighed for at løbe gennem celleområdet og udføre den samme opgave for hver celle, der er specificeret i sløjfen. Her skal vi fortælle startnummeret og slutnummeret.

Eksempel

For eksempel, hvis du vil indsætte serienumre fra 1 til 10, er nedenstående den traditionelle måde at indsætte serienumre på.

Under Serienummer ()

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

Afslut sub

Ser det fint ud, ikke? Men problemet her er kun 10 gange, vi har brug for at udføre denne opgave. Men forestil dig hvad hvis du vil indsætte 100 eller 1000 tal, kan du skrive koden 100 eller 1000 linjer. Det er umuligt, og det er her, skønheden i For Next-løkken er praktisk.

Trin 1: Åbn makro og erklær variablen i som heltal.

Sub Indsæt_Serienummer ()

Dim jeg som heltal

Afslut sub

Trin 2: Åbn nu For Loop . Her nævnes start og slutning af sløjfen ved hjælp af variablen i.

Trin 3: Skriv nu den kode, du vil udføre. Vi skal indsætte tal fra 1 til 10 i A1 til A10 celler. I stedet for at anvende Range-metoden skal du anvende Cells-metoden.

Det spørger række nummer, da vi allerede har erklæret variablen i som et heltal i starten. Dens værdi er 1. Så nævn, at jeg kan lide dit række nummer og 1 som dit kolonne nummer.

Nu skal værdien af ​​den aktuelle celleværdi være en i stedet for at nævne den første omtale i som værdien. Fordi hver gang løkken kører jeg værdi vil være stigende med 1.

Tryk nu på F8-tasten for at gå ind i en efter en linje. Tryk på F8, indtil den når For loop.

Denne gule farve er indikationen for, at den valgte kodelinje er ved at køre. Placer en markør på I, og den viser værdien som nul.

Tryk nu endnu en gang på F8-tasten, og placer en markør på i & nu er værdien 1.

Så værdierne af jeg i overalt er nu lig med 1. ” Celler (I, 1) .value = I” forstås Cells (1, 1) .value = 1.

Tryk på F8-tasten og se værdien i celle A1. Du skal se 1 i celle A1.

Hvis du nu trykker på F8-tasten, vender den tilbage til For-sløjfen en gang til, fordi slutgrænsen for variablen i er 10. Denne gang er I- værdien 2.

For den næste sløjfe kører i 10 gange og indsætter serienumre fra 1 til 10.

Type # 2 - For hver løkke

For hver sløjfe i VBA er til sløjfe gennem en samling objekter. For næste sløjfe sløjfer gennem cellerne og udføre opgaven, og For hver sløjfe sløjfer gennem objekter som regneark, diagrammer, projektmapper, figurer.

Ved hjælp af denne sløjfe kan vi gennemgå alle regnearkene og udføre nogle opgaver. For eksempel kan du løbe gennem alle regnearkene for at skjule og skjule regneark.

Eksempel nr. 1

Hvis du vil skjule alle regneark undtagen det ark, som du arbejder på, hvordan gør du det? Hvis du har 20 ark i projektmappen, er det en tidskrævende proces. Men med FOR EACH-loop kan vi udføre denne opgave.

Jeg har 5 ark, og jeg vil skjule alle arkene undtagen arket "Main" under koden ville gøre opgaven for mig.

Under til_Hide_All_Sheet ()

Dæmp Ws som regneark

For hver Ws i ActiveWorkbook.Worksheets

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

Næste Ws

Afslut sub

Eksempel 2

Hvis du vil fjerne alle de skjulte ark, vil nedenstående kode gøre jobbet for dig.

Under til_UnHide_Specific_Sheet ()

Dæmp Ws som regneark

For hver Ws i ActiveWorkbook.Worksheets

Ws.Visible = xlSheetVisible

Næste Ws

Afslut sub

Type # 3 - Do While Loop

Gør mens løkke udfører opgaven, mens den givne betingelse er SAND, og ​​når betingelsen bliver FALSK, stopper den med looping. I modsætning til de to andre sløjfer tester Do While tilstanden i slutningen af ​​sløjfen, ikke i begyndelsen.

Jeg viser dig eksemplet på at indsætte serienumre med Do While-loop.

Sub Do_While_Example ()

Dim jeg som heltal

i = 1
Gør, mens jeg <11
Celler (i, 1). Værdi = i
i = i + 1
loop

Afslut sub

Ovenstående sløjfe kører, mens i er mindre end 11, og fortsætter med at indsætte serienumre. I det øjeblik jeg bliver større end 11, stopper det med at løkke.

Type # 4 - Gør indtil løkke

I modsætning til Do While-loop kører Do indtil-loop ikke, mens betingelsen er SAND; snarere sløjfer den, indtil tilstanden er FALSK. Se f.eks. Nedenstående kode.

Sub Do_Until_Example ()

Dim jeg som heltal

i = 1
Gør indtil jeg = 11
celler (i, 1). værdi = i
i = i + 1
løkke

Afslut sub

Den eneste forskel mellem Do Do & Do indtil-sløjfen er den operatør, vi specificerer. I Do, mens vi nævnte at køre løkken, mens jeg er mindre end (<), 11, men i gør indtil løkke, nævnte vi at køre løkken Indtil jeg er lig med (=) til 11.

Ting at huske

  • Der er et mere avanceret Excel VBA-løkkeeksempel, men vi dækker hver enkelt af dem i en separat artikel i detaljer.
  • Hver sløjfe er til objektvariabler.
  • Selvom Do While & Do indtil ser ud som det samme, er det meget vigtigt at nævne tilstanden.
  • Sløjfer er meget vigtige begreber.

Interessante artikler...