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

Jak zablokovat aplikaci Microsoft Word v otevírání souborů v režimu pouze pro čtení v systému Windows

Jak zablokovat aplikaci Microsoft Word v otevírání souborů v režimu pouze pro čtení v systému Windows

Jak zablokovat aplikaci Microsoft Word v otevírání souborů v režimu pouze pro čtení v systému Windows Aplikace Microsoft Word otevírá soubory v režimu pouze pro čtení, takže je nelze upravovat? Nebojte se, metody jsou uvedeny níže

Jak opravit nesprávný tisk dokumentů Microsoft Word

Jak opravit nesprávný tisk dokumentů Microsoft Word

Jak opravit chyby při tisku nesprávných dokumentů Microsoft Word Chyby při tisku dokumentů Word se změněným písmem, chaotickými odstavci, chybějícím textem nebo ztraceným obsahem jsou poměrně časté. Nicméně ne

Vymažte kresby perem a zvýrazňovačem na snímcích PowerPoint

Vymažte kresby perem a zvýrazňovačem na snímcích PowerPoint

Pokud jste použili pero nebo zvýrazňovač ke kreslení na snímky aplikace PowerPoint během prezentace, můžete kresby uložit pro další prezentaci nebo je vymazat, takže až ji příště ukážete, začnete s čistými snímky aplikace PowerPoint. Chcete-li vymazat kresby perem a zvýrazňovačem, postupujte podle těchto pokynů: Mazání čar jedna na […]

Obsah knihovny stylů v SharePointu 2010

Obsah knihovny stylů v SharePointu 2010

Knihovna stylů obsahuje soubory CSS, soubory XSL (Extensible Stylesheet Language) a obrázky používané předdefinovanými vzorovými stránkami, rozvržení stránek a ovládací prvky v SharePointu 2010. Chcete-li najít soubory CSS v knihovně stylů webu pro publikování: Vyberte Akce webu→ Zobrazit Veškerý obsah webu. Zobrazí se obsah webu. Knihovna stylů se nachází v […]

Formátování čísel v tisících a milionech v sestavách Excel

Formátování čísel v tisících a milionech v sestavách Excel

Nezahlcujte své publikum gargantuovskými čísly. V aplikaci Microsoft Excel můžete zlepšit čitelnost řídicích panelů a sestav formátováním čísel tak, aby se zobrazovaly v tisících nebo milionech.

Jak sdílet a sledovat weby SharePoint

Jak sdílet a sledovat weby SharePoint

Naučte se používat nástroje sociálních sítí SharePoints, které umožňují jednotlivcům a skupinám komunikovat, spolupracovat, sdílet a propojovat se.

Jak převést data do juliánských formátů v aplikaci Excel

Jak převést data do juliánských formátů v aplikaci Excel

Juliánská data se často používají ve výrobním prostředí jako časové razítko a rychlý odkaz pro číslo šarže. Tento typ kódování data umožňuje maloobchodníkům, spotřebitelům a servisním zástupcům identifikovat, kdy byl produkt vyroben, a tím i stáří produktu. Juliánská data se také používají v programování, armádě a astronomii. Odlišný […]

Jak vytvořit webovou aplikaci Access

Jak vytvořit webovou aplikaci Access

Webovou aplikaci můžete vytvořit v Accessu 2016. Co je tedy vlastně webová aplikace? Web znamená, že je online, a aplikace je jen zkratka pro „aplikaci“. Vlastní webová aplikace je online databázová aplikace přístupná z cloudu pomocí prohlížeče. Webovou aplikaci vytváříte a udržujete ve verzi pro počítače […]

Panel rychlého spuštění v SharePointu 2010

Panel rychlého spuštění v SharePointu 2010

Většina stránek v SharePointu 2010 zobrazuje seznam navigačních odkazů na panelu Snadné spuštění na levé straně stránky. Panel Snadné spuštění zobrazuje odkazy na doporučený obsah webu, jako jsou seznamy, knihovny, weby a stránky publikování. Panel Snadné spuštění obsahuje dva velmi důležité odkazy: Odkaz na veškerý obsah webu: […]

Co znamenají chybové zprávy Řešitel v Excelu?

Co znamenají chybové zprávy Řešitel v Excelu?

U jednoduchých problémů Řešitel v Excelu obvykle rychle najde optimální hodnoty proměnné Řešitel pro účelovou funkci. Ale v některých případech má Řešitel problém najít hodnoty proměnné Řešitel, které optimalizují účelovou funkci. V těchto případech Řešitel obvykle zobrazí zprávu nebo chybovou zprávu, která popisuje nebo popisuje problém, který […]