VBA Do Loops - Hur använder jag Excel VBA Do Loops?

Innehållsförteckning

Excel VBA Do Loop

VBA Do-slinga , det är en uppsättning instruktioner inuti en delprocedur där koden körs ett visst antal gånger tills de önskade kriterierna uppnås eller någon tröskel överskrids eller säkert att säga att tills önskad data erhålls.

Medan slingan fungerar på logiska resultat fortsätter den att köra slingan fram och tillbaka medan testvillkoret är SANT. I det ögonblick som testvillkoret returnerar FALSK kommer det att gå ut ur slingan. Slingor är hjärtat i alla programmeringsspråk. I våra artiklar visar vi vikten av slingor och sätt att koda dem. I den här artikeln visar vi dig hur du använder Do Loop.

Hur använder jag VBA Do Loop?

Exempel # 1 - Villkor i slutet av Loop

Vi har sett tillståndstestet i början av slingan. I den tidigare koden har vi sett exemplet med att infoga serienummer och koden var så.

Koda:

Sub Do_While_Loop_Example1 () Dim k As Long k = 1 Do While k <= 10 Cells (k, 1). Värde = kk = k + 1 Loop End Sub

Nu kan du köra den här koden manuellt eller genom snabbtangenten F5 för att se resultatet.

Den här koden infogar serienummer från 1 till 10.

Men vi kan också testa tillståndet i slutet av slingan också. Vi måste använda ordet "while" och tillståndstestet i slutet efter ordet Loop.

Den enda ändringen här är att tillämpa testet i slutet, som visas nedan.

Koda:

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

Så här kan vi också testa tillståndet i slutet av loop-uttalandet.

Obs! Koden kommer att köras och testar sedan villkoret för att gå tillbaka till loop en gång till eller inte. Det betyder att den kommer att köras först och sedan prova situationen senare.

Exempel # 2 - Sammanfattning med Do While Loop

Antag att du har försäljnings- och kostnadsdata i ditt excelblad. Nedan följer den uppsättning dummydata jag har skapat för beräkning.

Nu måste vi få värdet av vinst i kolumn C. Jag har redan skapat en kod som kommer att göra ett jobb för mig.

Koda:

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.antal, 1). Slut (xlUp). Rad

Den här koden identifierar den senast använda raden i den första kolumnen. Detta gör koden dynamisk, för om det finns någon tillägg eller radering av data kommer detta att justera min sekvenstid för att köra slingan.

k = 2

Vi vill att beräkningen ska göras från den andra cellen och framåt. Så k: s initialvärde är 2.

Gör medan k <= LR

Som jag sa kommer LR att hitta den senast använda raden i den första kolumnen. Detta innebär att slingan körs medan k är <= till värdet på LR. I det här fallet har jag 10 rader, så LR = 10.

Slinga körs tills k-värdet når 10. När beloppet har passerat 10 slingor kommer det att sluta.

Nu kan du köra den här koden med snabbtangenten F5 eller manuellt för att se resultatet.

Exempel # 3 - Avslutningsuttalande i Do While Loop

Vi kan också lämna slingan medan villkoret fortfarande bara är SANT. Ta till exempel ovanstående uppgifter också här.

Antag att du inte vill göra hela beräkningen, men du behöver bara beräkna de första 5 vinstraderna, och så snart den når den 6: e raden, vill du komma ur slingan. Detta kan göras genom att använda IF-funktionen i excel. Koden nedan inkluderar utgångsuttalandet.

Koda:

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 Exit Do Do Cells (k, 3). Value = Cells ( k, 1) + Celler (k, 2) k = k + 1 Loop End Sub
“Om k> 6 Avsluta gör”

Denna kodrad kommer att starta utgångsprocessen. Loop fortsätter att gå tills värdet på k når 6. Det ögonblick det överstiger 6, Om villkoret kommer att köra koden, “Exit Do.”

Nu kan du köra den här koden med snabbtangenten F5 eller manuellt för att se resultatet.

Saker att komma ihåg

  • Do. Slingan fungerar på logiska resultat, och den fortsätter att köra slingan fram och tillbaka medan testvillkoret är SANT. I det ögonblick som testvillkoret returnerar FALSK kommer det att gå ut ur slingan.
  • Vi kan lämna slingan när som helst genom att justera ytterligare ett logiskt test inuti cirkeln med hjälp av IF-funktionen.
  • Om tillståndet eller testet tillhandahålls längst upp i slingan, kommer det först att kontrollera testet och fortsätta bara om det är SANT.
  • Om tillståndet eller testet tillhandahålls i slutet av slingan kommer det först att utföra kodblocket inuti slinguttrycket och i framtiden kommer det att testa tillståndet för att avgöra om det ska gå tillbaka för att köra slingan en gång till eller inte.

Intressanta artiklar...