Jak používat smyčky For-Next v Excelu 2016 VBA

Nejjednodušším typem smyčky v programování Excel VBA je smyčka For-Next. Smyčka je řízena proměnnou čítače, která začíná na jedné hodnotě a končí na jiné hodnotě. Příkazy mezi příkazem For a příkazem Next jsou příkazy, které se opakují v cyklu.

Příklad For-Next

Následující příklad používá smyčku For-Next k sečtení prvních 1 000 kladných čísel. Proměnná Total začíná nulou. Poté dojde k zacyklení. Proměnná Cnt je čítač smyčky. Začíná jako 1 a při každém průchodu smyčkou se zvýší o 1. Smyčka končí, když je Cnt 1 000.

Tento příklad má uvnitř smyčky pouze jeden příkaz. Tento příkaz přidá hodnotu Cnt k proměnné Total. Když smyčka skončí, MsgBox zobrazí součet čísel.

Sub AddNumbers()
  Dim Total As Double
  Dim Cnt As Long
  Celkem = 0
  Pro Cnt = 1 až 1000
    Celkem = Celkem + Cnt
  Další Cnt
  MsgBox celkem
End Sub

Protože čítač smyček je normální proměnná, můžete napsat kód pro změnu jeho hodnoty v rámci bloku kódu mezi příkazy For a Next. To je však velmi špatná praxe.

Příklady pro další s krokem

Hodnotu Step můžete použít k přeskočení některých hodnot čítače ve smyčce For-Next. Zde je předchozí příklad, přepsaný tak, aby sčítal pouze lichá čísla mezi 1 a 1 000:

Sub AddOddNumbers()
  Dim Total As Double
  Dim Cnt As Long
  Celkem = 0
  Pro Cnt = 1 až 1000 Krok 2
    Celkem = Celkem + Cnt
  Další Cnt
  MsgBox celkem
End Sub

Tentokrát Cnt začíná jako 1 a poté nabývá hodnot 3, 5, 7 a tak dále. Hodnota Step určuje, jak se bude čítač zvyšovat. Všimněte si, že hodnota horní smyčky (1000) se ve skutečnosti nepoužívá, protože nejvyšší hodnota Cnt bude 999.

Zde je další příklad, který používá hodnotu Step 3. Tento postup pracuje s aktivním listem a aplikuje světle šedé stínování na každý třetí řádek, od řádku 1 do řádku 100.

Sub ShadeEveryThirdRow()
  Dim i As Long
  Pro i = 1 až 100 Krok 3
    Řádky(i).Interiér.Barva = RGB(200, 200, 200)
  Příště já
End Sub

Podívejte se na výsledek spuštění tohoto makra.

Jak používat smyčky For-Next v Excelu 2016 VBA

Použití smyčky k použití stínování pozadí na řádky.

Příklad For-Next s příkazem Exit For

Smyčka For-Next může také obsahovat jeden nebo více příkazů Exit For v rámci smyčky. Když VBA narazí na tento příkaz, smyčka se okamžitě ukončí.

Následující příklad ukazuje příkaz Exit For. Tato rutina je procedura Function určená k použití ve vzorci listu. Funkce přijímá jeden argument (proměnnou s názvem Str) a vrací znaky nalevo od první číslice. Pokud je například argument „KBR98Z“, funkce vrátí „KBR“.

Funkce TextPart(Str)
  Dim i As Long
  TextPart = ""
  Pro i = 1 To Len(Str)
    If IsNumeric(Mid(Str, i, 1)) Then
      Konec pro
    Jiný
      TextPart = TextPart & Mid(Str, i, 1)
    End If
  Příště já
End Function

Smyčka For-Next začíná 1 a končí číslem, které představuje počet znaků v řetězci. Kód používá funkci Mid jazyka VBA k extrahování jediného znaku ve smyčce. Pokud je nalezen číselný znak, provede se příkaz Exit For a cyklus se předčasně ukončí.

Pokud znak není číselný, připojí se k vrácené hodnotě (která je stejná jako název funkce). Smyčka bude zkoumat každý znak pouze tehdy, když řetězec předaný jako argument neobsahuje žádné číselné znaky.

Vnořený příklad For-Next

Ve smyčce můžete mít libovolný počet příkazů a vnořit smyčky For-Next do jiných smyček For-Next.

Následující příklad používá vnořenou smyčku For-Next k vložení náhodných čísel do rozsahu buněk 12 řádků krát 5 sloupců. Všimněte si, že rutina provádí vnitřní smyčku (smyčku s čítačem Row) jednou pro každou iteraci vnější smyčky (smyčku s čítačem Col). Jinými slovy, rutina provede příkaz Cells(Row, Col) = Rnd 60krát.

Jak používat smyčky For-Next v Excelu 2016 VBA

Tyto buňky byly vyplněny pomocí vnořené smyčky For-Next.

Sub FillRange()
  Dim Col As Long
  Dim Row As Long
  Pro Col = 1 až 5
    Pro řádek = 1 až 12
      Buňky (řádek, sloupec) = Rnd
    Další řádek
  Dále plk
End Sub

Následující příklad používá vnořené cykly For-Next k inicializaci trojrozměrného pole s hodnotou 100. Tato rutina provede příkaz uprostřed všech cyklů (příkaz přiřazení) 1 000krát (10 * 10 * 10), pokaždé s jinou kombinací hodnot pro i, j a k:

Sub NestedLoops()
  Dim MyArray(10, 10, 10)
  Dim i As Long
  Dim j As Long
  Dim k As Long
  Pro i = 1 až 10
    Pro j = 1 až 10
      Pro k = 1 až 10
        MyArray(i, j, k) = 100
    Další k
  Další j
Příště já
  Další prohlášení najdete zde
End Sub

Zde je poslední příklad, který používá vnořené smyčky For-Next s hodnotou Step. Tento postup vytvoří šachovnici změnou barvy pozadí střídajících se buněk.

Jak používat smyčky For-Next v Excelu 2016 VBA

Pomocí smyček vytvořte šachovnicový vzor.

Čítač řádků zacyklí od 1 do 8. Konstrukce If-Then určuje, která vnořená struktura For-Next se má použít. U lichých řádků začíná počítadlo Col 2. U sudých řádků začíná počítadlo Col 1. Obě smyčky používají hodnotu Step 2, takže jsou ovlivněny alternativní buňky. Dva další příkazy dělají buňky čtvercové (stejně jako skutečná šachovnice).

Sub MakeCheckerboard()
  Ztlumit R jako dlouhé, C jako dlouhé
  Pro R = 1 až 8
    If WorksheetFunction.IsOdd(R) Then
     Pro C = 2 až 8 Krok 2
       Cells(R,C).Interior.Color = 255
     Další C
    Jiný
     Pro C = 1 až 8 Krok 2
       Cells(R,C).Interior.Color = 255
     Další C
    End If
  Další R
  Řádky(“1:8”).RowHeight = 35
  Columns(“A:H”).ColumnWidth = 6,5
End Sub

Leave a Comment

Jak používat příkazy Znovu a Opakovat ve Wordu 2016

Jak používat příkazy Znovu a Opakovat ve Wordu 2016

Objevte, jak efektivně využívat příkazy Znovu a Opakovat ve Wordu 2016 pro opravy dokumentů a zlepšení pracovního toku.

Jak změnit zamčené a skryté formátování buněk

Jak změnit zamčené a skryté formátování buněk

Naučte se, jak efektivně změnit stav buněk v Excelu 2010 z uzamčených na odemčené nebo z neskrytého na skrytý s naším podrobným průvodcem.

Jak přeložit text v cizím jazyce ve Wordu 2016

Jak přeložit text v cizím jazyce ve Wordu 2016

Zjistěte, jak efektivně využít překladové nástroje v Office 2016 pro překlad slov a frází. Překlad Gizmo vám pomůže překládat text s lehkostí.

Jak používat šablony ve Wordu 2013

Jak používat šablony ve Wordu 2013

Šablona ve Wordu šetří čas a usnadňuje vytváření dokumentů. Zjistěte, jak efektivně používat šablony ve Wordu 2013.

Jak vytvořit e-mailová upozornění pro skupinu SharePointu

Jak vytvořit e-mailová upozornění pro skupinu SharePointu

Zjistěte, jak si vytvořit e-mailová upozornění ve SharePointu a zůstat informováni o změnách v dokumentech a položkách.

Obsah SharePoint Online a typy obsahu

Obsah SharePoint Online a typy obsahu

Objevte skvělé funkce SharePoint Online, včetně tvorby a sdílení dokumentů a typů obsahu pro efektivnější správu dat.

Výpočet fiskálního čtvrtletí pro datum v Excelu

Výpočet fiskálního čtvrtletí pro datum v Excelu

Zjistěte, jak vypočítat fiskální čtvrtletí v Excelu pro různá data s použitím funkce CHOOSE.

Jak vytvořit hypertextový odkaz na jiný snímek v aplikaci PowerPoint 2007

Jak vytvořit hypertextový odkaz na jiný snímek v aplikaci PowerPoint 2007

Zjistěte, jak vytvořit hypertextový odkaz v PowerPointu, který vám umožní pohodlně navigovat mezi snímky. Použijte náš návod na efektivní prezentace.

Zobrazit starší verzi dokumentu aplikace Word 2016

Zobrazit starší verzi dokumentu aplikace Word 2016

Uložili jste nedávno svůj dokument? Náš návod vám ukáže, jak zobrazit starší verze dokumentu v aplikaci Word 2016.

Jak přiřadit makra pásu karet a panelu nástrojů Rychlý přístup v Excelu 2013

Jak přiřadit makra pásu karet a panelu nástrojů Rychlý přístup v Excelu 2013

Jak přiřadit makra vlastní kartě na pásu karet nebo tlačítku na panelu nástrojů Rychlý přístup. Návod pro Excel 2013.