VBA-slingor - Lista över de fyra främsta typerna av öglor (med exempel)

Innehållsförteckning

Excel VBA-loopar

Slingor används ofta i alla programmeringsspråk, där det finns ett visst behov eller ett kriterium när vi behöver en viss kod för att köra vissa tider använder vi slingor för dessa koder, nu finns det många typer av slingor i VBA som Do medan, Gör tills, För loop och För varje slinga, hjälper dessa slingor att koden körs tills villkoret är uppfyllt.

Låt mig göra detta påstående redan i början. "Om du vill behärska i VBA måste du slutföra mastern begreppet loopar i VBA-makron."

Loop är inget annat än att gå igenom en rad celler, gå igenom en rad objekt för att upprepa samma uppgift för samlingen av celler eller objekt. Istället för att utföra uppgiften i en separat uppsättning koderader med hjälp av slingor kan vi förkorta kodens längd till minst möjligt.

Lista över topp 4 typer av VBA-loopar

  1. För nästa slinga
  2. För varje slinga
  3. Gör medan Loop
  4. Gör tills öglan

Låt oss se var och en av dessa typer i detalj.

Typ # 1 - För nästa slinga

För Next-slingan kan vi slinga genom cellintervallet och utföra samma uppgift för varje cell som anges i slingan. Här måste vi berätta startnummer och slutnummer.

Exempel

Till exempel, om du vill infoga serienummer från 1 till 10, nedan är det traditionella sättet att infoga serienummer.

Under Serienummer ()

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

Avsluta sub

Ser bra ut, eller hur? Men problemet här är bara tio gånger vi behöver för att utföra denna uppgift. Men tänk vad om du vill infoga 100 eller 1000 nummer, kan du skriva koden 100 eller 1000 rader. Det är omöjligt, och det är där skönheten i For Next-slingan kommer till hands.

Steg 1: Öppna makro och förklara variabeln i som heltal.

Sub Insert_Serial_Number ()

Dim jag som heltal

Avsluta sub

Steg 2: Öppna nu For Loop . Här nämner du början och slutet av slingan med variabeln i.

Steg 3: Skriv nu koden du vill utföra. Vi måste infoga siffror från 1 till 10 i A1- till A10-celler. Istället för att använda Range-metoden, använd Cells-metoden.

Det frågar radnumret eftersom vi redan har deklarerat variabeln i som ett heltal först. Dess värde är 1. Så nämn att jag gillar ditt radnummer och 1 som kolumnnummer.

Nu ska värdet på det aktuella cellvärdet vara ett, istället för att nämna nummer ett som nämner i som värdet. Eftersom varje gång loop går i kommer värdet att öka med 1.

Tryck nu på F8-tangenten för att gå in i en efter en rad. Tryck på F8 tills den når For loop.

Den här gula färgen är en indikation på att den valda kodraden håller på att köras. Placera en markör på I så visas värdet som noll.

Tryck nu en gång till på F8-tangenten och placera en markör på i & nu är värdet 1.

Så värdena på i överallt är nu lika med 1. " Celler (I, 1) .värde = I" betyder celler (1, 1) .värde = 1.

Tryck på F8-tangenten och se värdet i cell A1. Du måste se 1 i cell A1.

Nu, om du trycker på F8-tangenten, kommer den att gå tillbaka till For-slingan en gång till eftersom slutgränsen för variabeln i är 10. Den här gången blir I- värdet 2.

För nästa slinga kommer att köras tio gånger och infoga serienummer från 1 till 10.

Typ # 2 - För varje slinga

För varje slinga i VBA är att slinga igenom en samling objekt. För nästa slingor slingrar genom cellerna och utför uppgiften, och för varje slinga slingrar sig genom objekt som kalkylblad, diagram, arbetsböcker, former.

Med den här slingan kan vi gå igenom alla kalkylblad och utföra några uppgifter. Du kan till exempel gå igenom alla kalkylblad för att dölja och ta bort kalkylblad.

Exempel 1

Om du vill dölja alla kalkylblad utom arket som du arbetar med, hur ska du göra det? Om du har 20 ark i arbetsboken är det en tidskrävande process. Men med FOR EACH-loop kan vi utföra den här uppgiften.

Jag har 5 ark, och jag vill dölja alla ark förutom att arket "Main" under koden skulle göra uppgiften för mig.

Sub To_Hide_All_Sheet ()

Dim Ws som arbetsblad

För varje Ws i ActiveWorkbook.Worksheets

Om Ws.Name “Main” Då
Ws.Visible = xlSheetVeryHidden
slut Om

Nästa Ws

Avsluta sub

Exempel 2

Om du vill ta bort alla dolda ark, gör nedanstående kod jobbet åt dig.

Under till_UnHide_Specific_Sheet ()

Dim Ws som arbetsblad

För varje Ws i ActiveWorkbook.Worksheets

Ws.Visible = xlSheetVisible

Nästa Ws

Avsluta sub

Typ # 3 - Do While Loop

Gör medan loop utför uppgiften medan det angivna villkoret är SANT, och när villkoret blir FALSE, kommer det att sluta loopa. Till skillnad från de andra två slingorna testar Do While tillståndet i slutet av slingan, inte i början.

Jag visar dig exemplet med att infoga serienummer med Do While-loop.

Sub Do_While_Example ()

Dim jag som heltal

i = 1
Gör medan jag <11
celler (i, 1) .Värde = i
i = i + 1
loop

Avsluta sub

Ovanstående slinga körs medan jag är mindre än 11 ​​och fortsätter att infoga serienumren. I det ögonblick jag blir större än 11 ​​kommer det att sluta kretsa.

Typ # 4 - Gör tills ögla

Till skillnad från Do While-loop, körs Do-till-loop inte när villkoret är SANT; snarare slingrar den tills villkoret är FALSKT. Titta till exempel på koden nedan.

Sub Do_Until_Example ()

Dim jag som heltal

i = 1
Gör tills jag = 11
Celler (i, 1). Värde = i
i = i + 1
loop

Avsluta sub

Den enda skillnaden mellan slingan Gör medan och gör tills är den operatör som vi anger. I Do, medan vi nämnde att köra slingan medan jag är mindre än (<), 11 men i gör tills slinga, nämnde vi att köra slingan tills jag är lika med (=) till 11.

Saker att komma ihåg

  • Det finns ett mer avancerat Excel VBA-slingexempel, men vi kommer att täcka var och en av dem i en separat artikel i detalj.
  • Varje slinga är för objektvariabler.
  • Även om Do While & Do tills ser ut på samma sätt och nämner villkoret är mycket viktigt.
  • Slingor är mycket viktiga begrepp.

Intressanta artiklar...