Smyčka Excel VBA
Smyčka VBA Do , je to sada instrukcí uvnitř dílčí procedury, kde se kód spouští určitý počet opakování, dokud není dosaženo požadovaných kritérií nebo není překročena jakákoli prahová hodnota, nebo bezpečně lze říci, že dokud nezískáte požadovaná data.
Zatímco smyčka pracuje na logických výsledcích, udržuje smyčku tam a zpět, zatímco testovací podmínka je PRAVDA. V okamžiku, kdy testovací podmínka vrátí hodnotu FALSE, ukončí smyčku. Smyčky jsou srdcem každého programovacího jazyka. V našich článcích demonstrujeme důležitost smyček a způsoby jejich kódování. V tomto článku vám ukážeme, jak používat Do Loop.

Jak používat smyčku VBA Do?
Příklad č. 1 - Podmínka na konci smyčky
Viděli jsme test stavu na začátku smyčky. V dřívějším kódu jsme viděli příklad vkládání sériových čísel a kód byl takový.
Kód:
Sub Do_While_Loop_Example1 () Dim k As Long k = 1 Do While k <= 10 Cells (k, 1). Hodnota = kk = k + 1 Loop End Sub

Nyní můžete tento kód spustit ručně nebo pomocí klávesové zkratky F5 a zobrazit výsledek.
Tento kód vloží sériová čísla od 1 do 10.

Můžeme ale také otestovat stav na konci smyčky. Musíme použít slovo „while“ a test stavu na konci za slovem Loop.
Jedinou změnou je použití testu na konci, jak je uvedeno níže.
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 testovat podmínku i na konci příkazu smyčky.
Poznámka: Kód se spustí, poté otestuje podmínku, zda se má do smyčky vrátit ještě jednou nebo ne. To znamená, že se nejprve spustí a poté situaci zkusí později.Příklad č. 2 - Součet pomocí funkce Do While Loop
Předpokládejme, že máte v excelovém listu údaje o prodeji a nákladech. Níže je uveden soubor fiktivních údajů, které jsem vytvořil pro výpočet.

Nyní musíme ve sloupci C získat hodnotu zisku. Již jsem vytvořil kód, který za mě udělá práci.
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) + Buňky (k, 2) k = k + 1 Sub Loop End Sub

LR = Buňky (Rows.Count, 1) .End (xlUp) .Row
Tento kód identifikuje poslední použitý řádek v prvním sloupci. Díky tomu je kód dynamický, protože pokud dojde k jakémukoli přidání nebo odstranění dat, upraví to můj čas sekvence pro spuštění smyčky.
k = 2
Chceme, aby výpočet probíhal od druhé buňky dále. Počáteční hodnota k je tedy 2.
Proveďte While k <= LR
Jak jsem řekl, LR najde poslední použitý řádek v prvním sloupci. To znamená, že smyčka poběží, zatímco k je <= k hodnotě LR. V tomto případě mám 10 řádků, takže LR = 10.
Smyčka bude probíhat, dokud hodnota k nedosáhne 10. Jakmile množství překročí 10 smyček, zastaví se.
Nyní můžete tento kód spustit pomocí klávesové zkratky F5 nebo ručně a zobrazit výsledek.

Příklad č. 3 - Příkaz k ukončení ve smyčce Do While Loop
Můžeme také opustit smyčku, zatímco podmínka je stále pouze PRAVDA. Vezměte zde například také výše uvedená data.

Předpokládejme, že nechcete dělat celý výpočet, ale budete potřebovat pouze pro výpočet prvních 5 řádků zisku, a jakmile se dostane do 6 tý řádek, chcete, aby vyšel ze smyčky. Toho lze dosáhnout pomocí funkce IF v aplikaci Excel. Níže uvedený kód obsahuje příkaz exit.
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) + Buňky (k, 2) k = k + 1 Sub Loop End Sub

„Je-li k> 6, pak odejdi“
Tento řádek kódu zahájí proces ukončení. Smyčka bude pokračovat v provozu, dokud hodnota k nedosáhne 6. V okamžiku, kdy překročí 6, Pokud podmínka provede kód, „Exit Do.“
Nyní můžete tento kód spustit pomocí klávesové zkratky F5 nebo ručně a zobrazit výsledek.

Věci k zapamatování
- Dělat. Smyčka pracuje na logických výsledcích a udržuje smyčku tam a zpět, zatímco testovací podmínka je PRAVDA. V okamžiku, kdy testovací podmínka vrátí hodnotu FALSE, ukončí smyčku.
- Smyčku můžeme kdykoli opustit úpravou dalšího logického testu uvnitř kruhu pomocí funkce IF.
- Pokud je podmínka nebo test zadán v horní části smyčky, nejprve zkontroluje test a bude pokračovat dále, pouze pokud je PRAVDA.
- Pokud je podmínka nebo test zadán na konci smyčky, provede nejprve blok kódu uvnitř příkazu smyčky a v budoucnu podmínku otestuje, aby se rozhodl, zda se má smyčka spustit ještě jednou nebo ne.