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:
- Otevřete editor kódu VBA stisknutím Všechno + F11 .
- Modul vložíte kliknutím na Modul možnost v rámci Vložit tab.
- 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:
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
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
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