Přeskočit navigaci | Přeskočit na novinky

Jste zde: Úvodní stránka » excel » vba-teorie-zaklady » excel-vba-for-next-cykly

For Next - Cykly -Excel VBA

Videokurzy Excel

Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:

Opakování je nejen matkou moudrosti, ale pomůže i v programování...

... aneb jak provést požadovaný počet opakování ...

Doplněno a rozšířeno: 1.8.2015

Úvodem do cyku: For Next

Excel logo

V tomto článku se naučíte používat cyklus For Next, pro přehlednost je článek rozdělen na jednotlivé kapitoly:


For Next teorie

Pro opakování (skupiny) příkazů podle zadaného počtu opakování.

Syntaxe

For čítač = začátek To konec [krok] [příkazy] Next [čítač]

Popis jednotlivých části:

  • čítač - Povinné - Číselná proměnná používaná jako čítač cyklů. Proměnná nemůže být typu Boolean nebo prvek pole
  • začátek - Povinné - Počáteční hodnota čítače
  • konec - Povinné - Koncová hodnota čítače
  • krok - Volitelné. Hodnota, o kterou je čítač změněn po každém průchodu cyklem. (Není-li uvedeno, nastaví se krok na 1)
  • příkazy - vlastní příkazy. Nebo úplně bez příkazu.

Poznámky:

  1. Čítač může i odečítat.
  2. Jednotlivé cykly For...Next můžeme vnořovat.
  3. Krok nemusí být roven jedné
  4. S proměnou počitadla se da uprostřed cyklu pracovat. Ale nedoporučuji dělat ať z programu nemáte guláš.
  5. Pro předčasné ukončení lze do cyklu umístit příkaz Exit For. Tento příkaz Exit For se používá pro vyhodnocení nějaké podmínky (např. If), a předá řízení příkazu následujícímu za příkazem Next.

Přičítat jedničku

První příklad - Přičítám jedničku.

For i = 1 To 10      ' ... vlastní kód Next i

Potřebujeme doplnit do prvního sloupce (A) od řádku 1 do řádku 10 čísla 1 až 10.

Dim i As Integer For i = 1 To 10 Cells(i, 1).Value = i Next i

Poznámka: Cells(i, 1).Value provede zápis na i-tý řádek zapíše hodnotu i.

Skok větší než jedna

Potřebujeme doplnit do prvního sloupce (A) od řádku 1 do řádku 10 čísla 1 až 10, ale pouze lichá. Využijeme v cyklu skok (Step).

Dim i As Integer For i = 1 To 10 Step 2 Cells(i, 2).Value = i Next i

For Next - Odečítání - příklady

Skok nemusí být jen kladný, ale můžeme i odečítat.

Dim i As Integer For i = 10 To 1 Step -1 Cells(i, 3).Value = 11 - i Next i

Příklad s vnořením For Next

Napřílad pokud potřebujete vyplnit tabulku.

Syntaxe

For I = 1 To 10     For J = 1 To 10         For K = 1 To 10 ...         Next K     Next J Next I

Praktický příklad

Příklad s vnořením For Next

Postupné vyplnění tabulky čísly 1 až ... 33 v tabulce, v řádcíh 4 až 14 a pro sloupce A, B, C, vyplNˇuje se nejprve ve sloupci a po řádcích.

Dim i As Integer Dim j As Integer Dim k As Integer k = 1 For i = 1 To 3 For j = 4 To 14 Cells(j, i).Value = k k = k + 1 Next j Next i
Příklad s vnořením For Next

Postupné vyplnění tabulky čísly 1 až ... 33 v tabulce, pro sloupce A, B, C a pro řádky 4 až 14, začíná se řádkem a vyplni se všechny sloupce

Dim i As Integer Dim j As Integer Dim k As Integer k = 1 For j = 4 To 14 For i = 1 To 3 Cells(j, i).Value = k k = k + 1 Next i Next j

Předčasné ukončení provádění For Next

Potřebujeteli opustit předčasně provádění cyklu lze využít příkaz:

Exit For

Využijeme předchozí příklad kdy zapisujeme čísla 1 až 10, ale při číslu 8 potřebujeme ukončit.

Dim i As Integer For i = 1 To 10 Cells(i, 4).Value = i If i = 8 Then Exit For End If Next i

Poznámka: Je jasné že podmínka se může vstahovat k úplně jiné proměnné, které se nezávislé mění. Pro jednoduchost v ukázce jsem zvolil i, klidně by se dal cyklus zkrátit na i = 1 To 8 a nemusel bych ho opouštět pomocí Exit For.

Kombinace sloupců 1 a 2

Kombinace sloupců 1 a 2

Zajímavý dotaz v komentářích, proto jsem doplnil řešení. V prvním sloucpi mám hodnoty a potřebuji vzít první hodnotu z prvního sloupce a postupně přidávat hodnoty co jsou ve sloupci 2, poté vzít druhou hodnotu z prvního sloupce a opět přidávat hodnoty z druhého sloupce.

j = 1 k = 1 For i = 1 To 3 HodnotaBunka = Cells(i, 1) For j = 1 To 4 HodnotaBunka2 = Cells(j, 2) HodnotaCelkem = HodnotaBunka & HodnotaBunka2 Cells(k, 3) = HodnotaCelkem ' MsgBox (HodnotaCelkem) k = k + 1 Next j Next i
Microsoft Excel VBA - stahuj logo

Ke stažení

Soubor For Next - praktické ukázky v Excel VBA soubor ve formátu *.xlsm ke stažení zdarma. Soubor využívá VBA makra.

Děkuji za respektování autorských práv.


Ukázka

For next ukázka

Související články s větvením:

Závěrem

Tento článek je součástí on-line výukového kurzu VBA MS Excel.

Máte nějaký zajímavý příklad na praktické použití For Next? Můžete jej uvést v komentářích.

Článek byl aktualizován: 19.09.2020 11:07

Podpora - oceňte web a pozvěte mě na čokoládu

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 .

Poděkování

Děkuji za váš čas a doufám, že jste nalezli odpověď na svůj problém.

Vylepšení

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.


Pavel Lasák - autor webu

Pavel Lasák

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.

   Pavel Lasák LinkedIn Profil    Pavel Lasák twitter Profil





Sdílejte

Pomohl Vám návod?
Sdílejte na Facebooku, G+
LinkedIn...

Nové články


Reklama


TOPlist Licence Creative Commons webarchiv rss XML

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 |