Excel VBA Do Loop
A VBA Do ciklus , ez egy olyan utasításkészlet egy alfolyamatban, ahol a kód meghatározott számú alkalommal fut, amíg el nem éri a kívánt kritériumot, vagy bármely küszöbérték túllépésre kerül, vagy biztosan állítható, hogy addig, amíg a szükséges adatokat nem kapják meg.
Míg a ciklus logikai eredmények alapján működik, a ciklust előre-hátra futtatja, miközben a tesztfeltétel IGAZ. Abban a pillanatban, amikor a tesztfeltétel visszatér HAMIS, kilép a ciklusból. A hurkok minden programozási nyelv szíve. Cikkjeinkben bemutatjuk a hurkok és kódolásuk fontosságát. Ebben a cikkben bemutatjuk a Do Loop használatát.

Hogyan kell használni a VBA Do Loop-ot?
1. példa - Feltétel a hurok végén
Láttuk az állapot tesztet a ciklus elején. A korábbi kódban láttunk példát a sorozatszámok beillesztésére, és a kód ilyen volt.
Kód:
Sub Do_While_Loop_Példa1 () Dim k As Long k = 1 Do While k <= 10 Cell (k, 1). Érték = kk = k + 1 Loop End Sub

Most futtathatja ezt a kódot manuálisan vagy az F5 gyorsbillentyűvel az eredmény megtekintéséhez.
Ez a kód 1 és 10 közötti sorszámokat fog beilleszteni.

De tesztelhetjük a ciklus végén lévő állapotot is. Használnunk kell a „while” szót és az állapot tesztet a Hurok szó után a végén.
Az egyetlen változás itt az, hogy a tesztet a végén alkalmazzuk, az alábbiak szerint.
Kód:
Sub Do_While_Loop_Példa1 () Dim k As Long k = 1 Do Cells (k, 1). Érték = kk = k + 1 hurok, míg k <= 10 End Sub

Így a ciklus utasítás végén is tesztelhetjük a feltételt.
Megjegyzés: A kód futni fog, majd teszteli azt a feltételt, hogy még egyszer visszatérjen a ciklushoz, vagy sem. Ez azt jelenti, hogy először fut, majd később megpróbálja a helyzetet.2. példa - Összegzés a Do while Loop használatával
Tegyük fel, hogy az értékesítési és költségadatok szerepelnek az excel lapján. Az alábbiakban bemutatom a hamis adatok halmazát, amelyet a számításhoz készítettem.

Most meg kell kapnunk a nyereség értékét a C. oszlopban. Már létrehoztam egy kódot, amely munkát végez nekem.
Kód:
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) + Sejtek (k, 2) k = k + 1 hurokvég alrész

LR = Cells (Rows.Count, 1). Vége (xlUp). Sor
Ez a kód azonosítja az első oszlopban utoljára használt sort. Ez dinamikussá teszi a kódot, mert ha az adatok kiegészülnek vagy törlésre kerül, ez a ciklus futtatásához igazítja a szekvenciaidőmet.
k = 2
Azt akarjuk, hogy a számítást a második cellától kezdve végezzük. Tehát k kezdeti értéke 2.
Tedd míg k <= LR
Mint mondtam, LR az első oszlopban megtalálja az utoljára használt sort. Ez azt jelenti, hogy a hurok futni fog, miközben k <= az LR értékéhez. Ebben az esetben 10 sorom van, tehát LR = 10.
A hurok addig fut, amíg a k értéke el nem éri a 10. Ha az összeg meghaladta a 10 ciklust, leáll.
Most futtathatja ezt a kódot az F5 gyorsbillentyűvel vagy manuálisan az eredmény megtekintéséhez.

3. példa - Kilépési utasítás a Do while Loop alatt
Kiléphetünk a hurokból is, miközben a feltétel még mindig IGAZ. Például vegye ide a fenti adatokat is.

Tegyük fel, hogy nem akarja a teljes számítást, de csak akkor kell számítani az első 5 sorban profit, és amint eléri a 6 th sor, azt szeretnénk, hogy jöjjön ki a hurok. Ez megtehető az IF függvény használatával az excelben. Az alábbi kód tartalmazza a exit utasítást.
Kód:
Sub Do_While_Loop_Példa3 () Dim k As Long Dim LR As Long k = 2 LR = Cells (Rows.Count, 1) .End (xlUp). Row Do While k 6, majd Exit Do Cells (k, 3). Value = Cells ( k, 1) + sejtek (k, 2) k = k + 1 hurokvég alrész

„Ha k> 6, akkor kilép
Ez a kódsor elindítja a kilépési folyamatot. A hurok addig fut, amíg a k értéke el nem éri a 6-ot. Abban a pillanatban, amikor meghaladja a 6-ot, Ha a feltétel végrehajtja a kódot, az „Exit Do”.
Most futtathatja ezt a kódot az F5 gyorsbillentyűvel vagy manuálisan az eredmény megtekintéséhez.

Dolgok, amikre emlékezni kell
- Csináld A ciklus logikai eredmények alapján működik, és folyamatosan tovább futtatja a ciklust, miközben a tesztfeltétel IGAZ. Abban a pillanatban, amikor a tesztfeltétel visszatér HAMIS, kilép a ciklusból.
- A ciklusból bármikor kiléphetünk, ha még egy logikai tesztet állítunk be a körön belül az IF függvény használatával.
- Ha a feltétel vagy teszt a hurok tetején található, akkor először ellenőrzi a tesztet, és csak akkor halad tovább, ha IGAZ.
- Ha a feltétel vagy teszt a ciklus végén van megadva, akkor először végrehajtja a ciklusblokkot a ciklus utasításban, és a jövőben teszteli a feltételt annak eldöntésére, hogy visszatér-e a ciklus újabb futtatásához. vagy nem.