Pro další smyčku v aplikaci Excel VBA - příručka pro začátečníky s příklady

Ve VBA se smyčka používá, když potřebujete provést stejný úkol vícekrát, dokud není splněna podmínka (nebo dokud není podmínka pravdivá).

V tomto kurzu se naučíte, jak používat smyčku For Next v aplikaci Excel VBA.

Pokud máte zájem naučit se VBA jednoduchým způsobem, podívejte se na můj Online školení Excel VBA.

Použití FOR NEXT Loop v Excelu VBA

Smyčka „For Next“ funguje tak, že smyčku spustíte zadaný počet opakování.

Pokud vás například požádám o manuální sečtení celých čísel od 1 do 10, přidali byste první dvě čísla, potom do výsledku přidali třetí číslo, pak do výsledku přidali čtvrté číslo atd.…

Není to tak?

Stejná logika se používá ve smyčce For Next ve VBA.

Můžete určit, kolikrát chcete smyčku spustit, a také určit, co má kód dělat při každém spuštění smyčky.

Zde je formát smyčky For Next, který musíte ve VBA použít k přidání prvních 10 celých čísel.

Pro i = 1 až 10 [do výsledku přidejte i -té kladné celé číslo] Další i

Nyní se podívejme na několik příkladů, jak používat smyčku For Next.

Příklad 1: Přidání prvních 10 pozitivních celých čísel

Níže je uveden kód, který přidá prvních 10 kladných celých čísel pomocí smyčky For Next. Poté se zobrazí okno se zprávou se součtem těchto čísel.

Sub AddNumbers () Dim Total as Integer Dim Count as Integer Total = 0 For Count = 1 To 10 Total = Total + Count Next Count MsgBox Total End Sub

V tomto kódu je hodnota Total nastavena na 0, než se dostanete do smyčky For Next.

Jakmile se dostane do smyčky, po každé smyčce udrží celkovou hodnotu. Takže po první smyčce, když je Counter 1, se hodnota „Total“ změní na 1 a po druhé smyčce na 3 (1+2) atd.

A nakonec, když smyčka skončí a když Total má součet prvních 10 kladných celých čísel, MsgBox jednoduše zobrazí výsledek v okně se zprávou.

Kliknutím sem stáhnete ukázkový soubor

Příklad 2: Přidání prvních 5 sudých pozitivních celých čísel

Abychom sečetli prvních pět sudých kladných celých čísel (tj. 2,4,6,8 a 10), potřebujete podobný kód s podmínkou, že budete brát v úvahu pouze sudá čísla a lichá čísla ignorovat.

Zde je kód, který to udělá:

Sub AddEvenNumbers () Dim Total as Integer Dim Count as Integer Total = 0 For Count = 2 to 10 Step 2 Total = Total + Count Next Count MsgBox Total End Sub

Všimněte si toho, že jsme spustili hodnotu Count od 2 a také jsme použili krok 2 v syntaxi For.

Krok 2 by řekl kódu, aby zvýšil hodnotu „Count“ o 2 při každém spuštění smyčky. Hodnota Count tedy začíná od 2 a poté se stává 4, 6, 8 a 10, jak dochází k opakování.

POZNÁMKA: Dalším způsobem, jak toho dosáhnout, je spustit smyčku od 1 do 10 a ve smyčce zkontrolovat, zda je číslo sudé nebo liché. V tomto případě je však použití kroku efektivnější, protože nevyžaduje, aby se smyčka spustila 10krát, ale pouze 5krát.

Kliknutím sem stáhnete ukázkový soubor.

Příklad 3: Získejte číselnou část z alfanumerického řetězce

Smyčku „Pro další“ lze také použít k procházení každým znakem v řetězci.

Pokud například máte seznam alfanumerických řetězců, můžete z něj vyjmout smyčku For Next (jak je uvedeno níže):

Zde je kód, který ve VBA vytváří vlastní funkci, kterou lze použít jako jakoukoli jinou funkci listu.

Extrahuje číselnou část z alfanumerického řetězce.

Funkce GETNUMERIC (rozsah jako Cl) Dim i jako celé číslo Dim Výsledek jako dlouhý pro i = 1 až Len (Cl) If IsNumeric (Mid (Cl, i, 1)) Then Result = Result & Mid (Cl, i, 1) End If Next i GetNumeric = Result End Function

V tomto kódu závisí počet spuštění smyčky na délce alfanumerického řetězce (k vyhledání délky řetězce používá funkci LEN).

Tuto funkci musíte vložit do okna kódu modulu a pak ji můžete použít jako jakoukoli jinou funkci listu.

Kliknutím sem stáhnete ukázkový soubor.

Příklad 4: Získání náhodných čísel ve vybraném rozsahu

Předpokládejme, že chcete rychle zadat náhodná čísla do vybraných buněk, zde kód, který to udělá.

Sub RandomNumbers () Dim MyRange As Range Dim i As Integer, j As Integer Set MyRange = Selection For i = 1 To MyRange.Columns.Count For j = 1 To MyRange.Rows.Count MyRange.Cells (j, i) = Rnd Další j Další i Konec Sub

Toto je příklad vnořené smyčky For Next, kde se smyčka For používá v rámci smyčky For.

Předpokládejme, že vyberete 10 řádků a 4 sloupce, hodnota i se pohybuje od 1 do 4 a hodnota j se pohybuje od 1 do 10.

Když je spuštěna první smyčka For, hodnota i je 1. Poté se přesune do druhé smyčky For, která běží 10krát (pro každý řádek).

Jakmile byla 10krát provedena druhá smyčka For, přejde zpět na první smyčku For, kde se hodnota i stává 2. Opět další smyčka For běží 10krát.

Takto funguje vnořená smyčka For Next.

Kliknutím sem stáhnete ukázkový soubor.

Také by se vám mohly líbit následující návody Excel VBA:

  • Práce s buňkami a rozsahy v aplikaci Excel VBA.
  • Práce s listy v Excelu VBA.
  • Práce se sešity pomocí VBA.
  • Použití příkazů IF Then Else ve VBA.
  • Excel VBA Select Case.
  • Vytvoření funkce definované uživatelem v aplikaci Excel.
  • Události aplikace Excel VBA - snadný (a kompletní) průvodce
  • Jak zaznamenat makro v aplikaci Excel.
  • Jak spustit makro v aplikaci Excel.
  • Jak vytvořit doplněk v aplikaci Excel.
  • Jak uložit a znovu použít makro pomocí sešitu aplikace Excel Personal Macro.
  • Užitečné příklady maker aplikace Excel pro začátečníky.
  • Použití funkce InStr ve VBA.
wave wave wave wave wave