Jak používat pro každou smyčku v Excelu VBA

Jak používat pro každou smyčku v Excelu VBA
Čtenáři jako vy pomáhají podporovat MUO. Když provedete nákup pomocí odkazů na našich stránkách, můžeme získat provizi přidružené společnosti. Přečtěte si více.

Smyčky a VBA jdou dohromady, a to z dobrého důvodu. Při práci s objekty sady Microsoft Office, jako jsou sešity, listy a rozsahy, vám smyčky pomohou relativně snadno přepínat mezi každým z nich.





Zatímco víceméně všechny smyčky VBA fungují dobře s objekty, smyčka „pro každého“ je jednou z nejlepších možností pro práci s kolekcemi objektů. Pokud s Excelem VBA začínáte a chcete si osvojit pro každou smyčku, můžete se rychle poučit z některých z těchto příkladů. Zde je vše, co potřebujete vědět o této základní smyčce.





VYUŽÍVÁNÍ VIDEA DNE POKRAČOVÁNÍ V OBSAHU POKRAČUJTE PŘEJÍMÁNÍM

Pro syntaxi každé smyčky

Syntaxe pro každou smyčku je velmi podobná obvyklé smyčce for v Excel VBA. Zde je syntaxe:





jak najít informace o někom
 For each variable_name in object_collection 

[statement]

[statement]

[statement]

Next variable_name

Cyklus začíná klíčovým slovem „pro každého“; můžete použít libovolný název proměnné, za kterým následuje kolekce objektů. Objektem pro každou smyčku mohou být buňky, rozsahy, listy a dokonce i sešity. Taková je krása této smyčky; poskytuje vám flexibilitu při práci s různými kolekcemi aplikace Excel.

Smyčka prochází každou hodnotou kolekce a ukládá odkaz pod definovaný název proměnné. Po provedení VBA provede uložené příkazy v rámci smyčky a přesune se na další objekt v kolekci ( další klíčové slovo je zde užitečné). Pojďme pochopit strukturu kódu na základním příkladu.



Jak používat pro každou smyčku v Excelu VBA

Předpokládejme, že chcete vytisknout číslo v buňkách A1 až A10. Nejlepším přístupem je použít pro každou smyčku s funkcí rozsahu a nechat kód udělat potřebné. Tento jednoduchý úkol můžete provést takto:

  1. Otevřete editor kódu VBA stisknutím Všechno + F11 .
  2. Modul vložíte kliknutím na Modul možnost v rámci Vložit tab.   Excelový list se sloupcovým výstupem's code editor
  3. Vytvořte podprogram pomocí příkazu sub() v okně modulu editoru kódu. Ujistěte se, že jste podprogramu přiřadili smysluplný název. Pro tento příklad můžete použít název for_each_loop .

Nyní, když jsou základy z cesty, je čas začít psát kód. V rámci podprogramu zadejte následující příkazy:





 Dim cell as range 

For each cell in Sheets("Sheet1").Range("A1:A10")

cell.value = 10

Next cell

Když se kód spustí, C proměnná bude ukládat hodnotu A1. Poté, když přejde k příkazu v rámci cyklu, vyhodnotí příkaz a zadá hodnotu 10 do definované buňky, tj. buňky A1.

Nakonec, když se přesune na klíčové slovo Další, přesune se na další hodnotu, tj. buňku A2. Smyčka běží, dokud nedosáhne buňky A10. Toto je konečný výstup:





  Fragment kódu VBA v editoru a excelový výstup

Použití smyčky s objekty: buňky, listy a sešity

Excel má tři hlavní typy objektů, se kterými pravidelně pracujete. Jsou to buňky, listy a sešity. Zde je návod, jak můžete použít smyčku se všemi třemi typy objektů.

Práce s buňkami a smyčkami dohromady

Předpokládejme, že chcete přidat hodnotu a některé podmínky formátování do rozsahu buněk v List1. Jako první krok musíte definovat podmínky v rámci smyčky a poté příkazy pro formátování.

USB zařízení nemůže spustit kód 10

Zadejte následující kód v rámci podprogramu.

 Sub for_each_loop() 



Dim c As Range



For Each c In Sheets("Sheet1").Range("A1:A10")



With c

.Value = 10

.Font.Color = vbRed

.Font.Bold = True

.Font.Strikethrough = True



End With



Next c



End Sub
  Fragment kódu VBA v editoru kódování

The s Funkce je užitečná při provádění více funkcí s jedním konkrétním objektem. Protože chcete provést řadu úloh s proměnnou c, můžete je všechny zkombinovat pomocí funkce a with..end with.

Smyčka srovná hodnotu c s hodnotou každé buňky a zadá hodnotu 10. Navíc změní barvu buňky na červenou, hodnotu zvýrazní tučným písmem a přeškrtne ji. Jakmile dokončí všechny kroky, přesune se na další definovanou hodnotu v rozsahu.

Použití smyčky k ovládání listů

Podobně jako ve výše uvedeném příkladu můžete pro řízení listů použít pro každou smyčku. Co takhle změnit název List1 na List3 pomocí VBA?

K přejmenování existujícího listu v Excelu pomocí VBA můžete použít následující kód:

 Sub for_each_loop_sheets() 



For Each sht In ThisWorkbook.Sheets



If sht.Name = "Sheet1" Then



sht.Name = "Sheet3"



End If



Next sht



End Sub
  Fragment kódu VBA v editoru

Kód prochází každý list v sešitu a kontroluje název každého listu. Pokud narazí na název List1, změní jej na List3. Postupuje se zbývajícími listy, pokud existují, v sešitu. Jakmile spuštění kódu dosáhne posledního listu, opustí smyčku a podprogram.

Mezi některá další běžná použití můžete sloučit více listů pomocí VBA a aktualizovat obsah na jednom listu pomocí smyček.

jak hrát počítačové hry na televizi bezdrátově

Přepínat mezi sešity pomocí smyčky

Nakonec můžete použít pro každou smyčku pro přepínání mezi různými sešity a provádění konkrétních úkolů. Ukažme si tuto funkci na příkladu.

Pomocí příkazů VBA můžete přidat tři nové sešity a všechny otevřené společně zavřít. Můžete to udělat takto:

 Sub loop_wrkbook() 



Dim wrkbook as workbook



Workbooks.Add

Workbooks.Add

Workbooks.Add



For Each wrkbook In Workbooks



wrkbook.



Next wrkbook



End Sub