Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:
Opakuje příkazy, dokud platí nebo neplatí podmínka.
Doplněno: 2.8.2015
Potřebujeme-li vykonat určitou posloupnost příkazu na základě hodnoty příslušného výrazu. Například hodnota příspěvku dle věku dítěte. Velikost slevy podle hodnoty objednávky.
Konstrukce Do .. Loop opakuje příkazy, dokud je podmínka vyhodnocena jako True, nebo dokud podmínka není True. Funguje ve dvou provedeních:
Cyklus Do - While se provádí, dokud je splněna zadaná podmínka. Viz následující syntaxe.
Cyklus Do - Until se provádí tak dlouho, dokud podmínka není splněna. Viz následující syntaxe.
Do [{While | Until} podmínka]
[příkazy]
[Exit Do]
[příkazy]
Loop
Do
[příkazy]
[Exit Do]
[příkazy]
Loop [{While | Until} podmínka]
Do smyčky Do ... Loop může být umístěn libovolný počet příkazů Exit Do. Tento příkaz umožňuje předčasné ukončení smyčky. Popis funkce Exit do popíšů v jiném článku.
Při použití ve vnořených příkazech Do .. Loop předá příkaz Exit Do řízení do nadřazeného cyklu.
Ukázkové příklady
Pocitadlo = 1
Do While Pocitadlo < 10 ' Vnitřní smyčka.
Cells(Pocitadlo + 4, 2) = Pocitadlo
Pocitadlo = Pocitadlo + 1 ' Zvyš počítadlo.
Loop
Pocitadlo = 1
Do
Cells(Pocitadlo + 4, 3) = Pocitadlo
Pocitadlo = Pocitadlo + 1 ' Zvyš počítadlo.
Loop While Pocitadlo < 10 ' Vnitřní smyčka.
Ukázkové příklady
Pocitadlo = 1
Do Until Pocitadlo > 10 ' Vnitřní smyčka.
Cells(Pocitadlo + 4, 1) = Pocitadlo
Pocitadlo = Pocitadlo + 1 ' Zvyš počítadlo.
Loop
Pocitadlo = 1
Do
Cells(Pocitadlo + 4, 3) = Pocitadlo
Pocitadlo = Pocitadlo + 1 ' Zvyš počítadlo.
Loop Until Pocitadlo > 10 ' Vnitřní smyčka.
Cykly Do - Loop mohou obsahovat příkazy Exit Do. Exit Do ukončí provádění a přejde na příkaz za Loop.
Do While Pocitadlo < 20 ' Vnitřní smyčka.
Pocitadlo = Pocitadlo + 1 ' Zvyš počítadlo.
If Pocitadlo = 10 Then ' Je-li podmínka True.
Test = False ' Nastav hodnotu příznaku na False.
Exit Do ' Opusť vnitřní smyčku.
End If
Loop
Pocitadlo = 1
Do Until Pocitadlo > 10 ' Vnitřní smyčka.
Cells(Pocitadlo + 7, 2) = Pocitadlo
Pocitadlo = Pocitadlo + 1 ' Zvyš počítadlo.
If Pocitadlo = 5 Then ' Je-li podmínka True.
Test = False
Exit Do
End If
Loop
Do cyklů příkazu Do .. Loop je vhodné zabudovat ochranu. Excel pracuje ve dvojkové soustavě a zaokrouhluje s 15-ti místnou přesností. Budeme-li přičítat desetinná čísla může dojít k zacyklení. Například při přičítání čísla 0,00001 (100.000)nedostanete hodnotu 1,0 ale 0,999999999... Kód se neukončí a bude pokračovat dále do nekonečna.
Soubory ke stažení zdarma. Soubory využívají makra:
Tento článek je součástí on-line výukového kurzu VBA MS Excel.
Mate-li zajímavé použití cyklu Do .. Loop můžete jej uvést v komentářích.
Článek byl aktualizován: 19.09.2020 11:07
Pomohl vám článek? Vyřešili jste problém? Můžete mě podpořit zakoupení tabulky (samozdřejmě čokoládové), když kafe nepiji ;) Odkaz na zakoupení čokolády. Za veškerou podporu vám děkuji a samozdřejmě jí využiji do zdokonalování a rozšířování webu.
Případně přidejte odkaz na vaši oblíbenou sociální síť, případně využijste hashtag #JakNaExcel .
Děkuji za váš čas a doufám, že jste nalezli odpověď na svůj problém.
Narazili jste v článku na nejasnost, chybu? Máte tip na vylepšení nebo doplnění článku? Budu rád pokud se zmínite v komentářích.
Microsoft Office (Word, Excel, Google tabulky, PowerPoint) se věnuji od roku 2000 (od dubna roku 2004 na této doméně) - V roce 2017 jsem od Microsoft získal prestižní ocenění MVP (zatím 8x za sebou). Své vědomosti a zkušenosti dávám k dispozici i on-line ve videích pro SEDUO. Ve firmách školím a konzultuji, učím na MUNI. Tento web již tvořím přes 20 let (o Excel píší přes 25). Zdarma je zde přes 1.500 návodu, tipů a triků, včetně přes 350 různých šablon, sešitů a přes 70 taháků v pdf.
Pomohl Vám návod? Sdílejte na Facebooku, G+ |
||
LinkedIn... |
Stránky o MS Office (Excel) produktu společnosti Microsoft. Neslouží jako technická podpora.
| Email na autora: pavel.lasak@gmail.com | Copyright © : Pavel Lasák 2004 - 2025 |