Smyčka Excel VBA
Smyčka VBA Do , je to sada pokynov vo vnútri čiastkovej procedúry, kde sa kód spúšťa špecificky viackrát, kým sa nedosiahnu požadované kritériá alebo kým sa neprekročí prahová hodnota, alebo sa dá bezpečne povedať, že kým sa nezískajú požadované údaje.
Zatiaľ čo slučka pracuje na logických výsledkoch, udržuje chod slučky tam a späť, kým je testovacia podmienka PRAVDA. V okamihu, keď testovacia podmienka vráti hodnotu FALSE, ukončí slučku. Smyčky sú srdcom každého programovacieho jazyka. V našich článkoch demonštrujeme dôležitosť slučiek a spôsoby ich kódovania. V tomto článku vám ukážeme, ako používať funkciu Do Loop.

Ako používať slučku VBA Do?
Príklad č. 1 - Podmienka na konci slučky
Test stavu sme videli na začiatku slučky. V staršom kóde sme videli príklad vkladania sériových čísel a kód bol taký.
Kód:
Sub Do_While_Loop_Example1 () Dim k As Long k = 1 Do while k <= 10 Cells (k, 1). Value = kk = k + 1 Loop End Sub

Teraz môžete tento kód spustiť manuálne alebo pomocou klávesovej skratky F5, aby ste videli výsledok.
Tento kód vloží sériové čísla od 1 do 10.

Môžeme však tiež otestovať stav na konci slučky. Musíme použiť slovo „while“ a test stavu na konci za slovom Loop.
Jedinou zmenou je vykonanie testu na konci, ako je uvedené nižšie.
Kód:
Sub Do_While_Loop_Example1 () Dim k As Long k = 1 Do Cells (k, 1). Hodnota = kk = k + 1 Loop While k <= 10 End Sub

Takto môžeme testovať podmienku aj na konci príkazu slučky.
Poznámka: Kód sa spustí, potom otestuje podmienku, či sa ešte raz vráti do slučky, alebo nie. To znamená, že sa najskôr spustí, a potom situáciu vyskúša neskôr.Príklad č. 2 - Sčítanie pomocou príkazu Do While Loop
Predpokladajme, že vo svojom excelovom liste máte údaje o predaji a nákladoch. Nižšie je uvedený zoznam figurín, ktoré som vytvoril pre výpočet.

Teraz musíme získať hodnotu zisku v stĺpci C. Už som vytvoril kód, ktorý za mňa urobí prácu.
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) + bunky (k, 2) k = k + 1 koniec koncovky sub

LR = bunky (riadky, počet, 1). Koniec (xlUp). Riadok
Tento kód identifikuje naposledy použitý riadok v prvom stĺpci. Vďaka tomu je kód dynamický, pretože ak dôjde k nejakému doplneniu alebo vymazaniu údajov, upraví sa tým môj čas sekvencie spustenia slučky.
k = 2
Chceme, aby sa výpočet uskutočňoval od druhej bunky ďalej. Počiatočná hodnota k je teda 2.
Robiť Kým k <= LR
Ako som povedal, LR nájde posledný použitý riadok v prvom stĺpci. To znamená, že slučka bude prebiehať, kým k je <= k hodnote LR. V tomto prípade mám 10 riadkov, takže LR = 10.
Smyčka bude prebiehať, kým hodnota k nedosiahne 10. Keď množstvo prekročí 10 slučiek, zastaví sa.
Teraz môžete tento kód spustiť pomocou klávesovej skratky F5 alebo ručne, aby ste videli výsledok.

Príklad č. 3 - Vyhlásenie o výstupe v cykle Do While Loop
Môžeme tiež opustiť slučku, zatiaľ čo podmienka je stále iba PRAVDA. Vezmite napríklad aj vyššie uvedené údaje.

Predpokladajme, že nechcete vykonať celý výpočet, ale musíte vypočítať iba prvých 5 riadkov zisku a hneď ako dosiahne šiesty riadok, chcete vyjsť zo slučky. To sa dá dosiahnuť pomocou funkcie IF v programe Excel. Nasledujúci kód obsahuje výstupné vyhlásenie.
Kód:
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 Then Exit Do Cells (k, 3). Value = Cells ( k, 1) + bunky (k, 2) k = k + 1 koniec slučky Sub

„Ak k> 6, potom Exit Do“
Tento riadok kódu začne proces ukončenia. Smyčka bude pokračovať v činnosti, kým hodnota k nedosiahne 6. V okamihu, keď prekročí 6, Ak podmienka vykoná kód, „Exit Do.“
Teraz môžete tento kód spustiť pomocou klávesovej skratky F5 alebo ručne, aby ste videli výsledok.

Na čo treba pamätať
- Urob. Smyčka pracuje na logických výsledkoch a stále beží vpred a vzad, kým je testovacia podmienka PRAVDA. V okamihu, keď testovacia podmienka vráti hodnotu FALSE, ukončí slučku.
- Smyčku môžeme kedykoľvek opustiť úpravou jedného logického testu vo vnútri kruhu pomocou funkcie IF.
- Ak je podmienka alebo test uvedený v hornej časti slučky, najskôr skontroluje test a bude pokračovať ďalej, iba ak je PRAVDA.
- Ak je podmienka alebo test dodaný na konci slučky, najskôr vykoná blok kódu vo vnútri príkazu slučky a v budúcnosti bude podmienku testovať, aby sa rozhodol, či sa vráti späť a spustí slučku ešte raz. alebo nie.