Chcete automatizovať opakujúce sa úlohy v Exceli pomocou VBA? Zistite, ako používať cyklus For Each na efektívnu manipuláciu s údajmi vo vašich tabuľkách.
Slučky a VBA idú spolu, a to z dobrého dôvodu. Pri práci s objektmi balíka Microsoft Office, ako sú zošity, pracovné hárky a rozsahy, vám slučky pomôžu relatívne ľahko prepínať medzi každým z nich.
Zatiaľ čo viac-menej všetky slučky VBA fungujú dobre s objektmi, slučka „pre každého“ je jednou z najlepších možností na prácu s kolekciami objektov. Ak ste novým programom Excel VBA a chcete si osvojiť pre každú slučku, môžete sa rýchlo poučiť z niektorých z týchto príkladov. Tu je všetko, čo potrebujete vedieť o tejto základnej slučke.
Pre syntax každej slučky
Syntax pre každú slučku je dosť podobná bežnej slučke for v Excel VBA. Tu je syntax:
Pre každý názov_premennej v kolekcii objektov
[vyhlásenie]
[vyhlásenie]
[vyhlásenie]
Nasledujúci názov_premennej
Cyklus začína kľúčovým slovom „pre každého“; môžete použiť ľubovoľný názov premennej, za ktorým nasleduje kolekcia objektov. Objektom v pre každú slučku môžu byť bunky, rozsahy, hárky a dokonca aj zošity. Takáto je krása tejto slučky; poskytuje vám flexibilitu pri práci s rôznymi kolekciami Excelu.
Cyklus prechádza cez každú hodnotu kolekcie a ukladá referenciu do definovaného názvu premennej. Po vykonaní VBA vykoná uložené príkazy v rámci cyklu a presunie sa na ďalší objekt v kolekcii ( Ďalšie kľúčové slovo je tu užitočné). Poďme pochopiť štruktúru kódu na základnom príklade.
Ako používať pre každú slučku v Exceli VBA
Predpokladajme, že chcete vytlačiť číslo v bunkách A1 až A10. Najlepší prístup je použiť pre každú slučku s funkciou rozsahu a nechať kód urobiť potrebné. Tu je návod, ako môžete vykonať túto jednoduchú úlohu:
- Otvorte editor kódu VBA stlačením Alt + F11.
- Modul vložte kliknutím na modul možnosť v rámci Vložiť tab.
- Vytvorte podprogram pomocou príkazu sub() v okne modulu editora kódu. Uistite sa, že ste podprogramu priradili zmysluplný názov. V tomto príklade môžete použiť názov pre_každú_slučku.
Teraz, keď sú základy z cesty, je čas začať písať kód. V rámci podprogramu zadajte nasledujúce príkazy:
Stmaviť bunku ako rozsah
Pre každú bunku v Listy("Hárok 1").Rozsah("A1:A10")
bunka.hodnota = 10
Ďalšia bunka
Keď sa kód spustí, c premenná bude uchovávať hodnotu A1. Potom, keď prejde k príkazu v rámci cyklu, vyhodnotí príkaz a zadá hodnotu 10 do definovanej bunky, t. j. bunky A1.
Nakoniec, keď sa presunie na kľúčové slovo Ďalej, presunie sa na ďalšiu hodnotu, t. j. bunku A2. Cyklus prebieha, kým nedosiahne bunku A10. Toto je konečný výstup:
Používanie slučky s objektmi: bunky, hárky a zošity
Excel má tri hlavné typy objektov, s ktorými pravidelne pracujete. Sú to bunky, hárky a zošity. Tu je návod, ako môžete použiť slučku so všetkými tromi typmi objektov.
Spolupráca s bunkami a slučkami
Predpokladajme, že chcete pridať hodnotu a niektoré podmienky formátovania do rozsahu buniek v Hárok1. Ako prvý krok musíte definovať podmienky v rámci cyklu, po ktorých nasledujú príkazy na formátovanie.
Zadajte nasledujúci kód v rámci podprogramu.
Sub for_each_loop()
Stlmiť c Ako Rozsah
Pre každé c v hárkoch("Hárok 1").Rozsah("A1:A10")
s c
.Hodnota = 10
.Písmo. Farba = vbČervená
.Písmo. Tučné = Pravda
.Písmo. Prečiarknuté = Pravda
Koniecs
Ďalej c
Koniec Sub
The s funkcia je užitočná pri vykonávaní viacerých funkcií s jedným konkrétnym objektom. Keďže chcete vykonať sériu úloh s premennou c, môžete ich všetky skombinovať pomocou funkcie a with..end with.
Cyklus prirovná hodnotu c s hodnotou každej bunky a zadá hodnotu ako 10. Okrem toho zmení farbu bunky na červenú, hodnotu zvýrazní tučným písmom a prečiarkne ju. Po dokončení všetkých krokov sa presunie na ďalšiu definovanú hodnotu v rozsahu.
Používanie slučky na ovládanie hárkov
Podobne ako vo vyššie uvedenom príklade môžete použiť pre každú slučku na ovládanie hárkov. Čo tak zmeniť názov Hárok1 na Hárok3 pomocou VBA?
Na premenovanie existujúceho pracovného hárka v Exceli pomocou VBA môžete použiť nasledujúci kód:
Sub for_each_loop_sheets()
PreKaždýshtInTento pracovný zošit.Plechy
Ak sht. Meno = "Hárok 1" Potom
sht. Meno = "Hárok 3"
KoniecAk
Ďalší sht
Koniec Sub
Kód prechádza každým hárkom v zošite a kontroluje názov každého hárka. Ak narazí na názov Hárok1, zmení ho na Hárok3. Postupuje sa cez zostávajúce hárky, ak nejaké existujú, v zošite. Keď spustenie kódu dosiahne posledný hárok, opustí cyklus a podprogram.
Okrem niektorých iných bežných použití môžete zlúčiť viacero pracovných hárkov pomocou VBA a aktualizovať obsah na jednom hárku pomocou slučiek.
Prepínajte medzi pracovnými zošitmi pomocou slučky
Nakoniec môžete použiť pre každú slučku na prepínanie medzi rôznymi zošitmi a vykonávanie špecifických úloh. Ukážme si túto funkciu na príklade.
Pomocou príkazov VBA môžete pridať tri nové zošity a zatvoriť všetky otvorené. Môžete to urobiť takto:
Sub loop_wrkbook()
Dim workbook ako pracovný zošit
Pracovné zošity.Pridať
Pracovné zošity.Pridať
Pracovné zošity.Pridať
Pre každý pracovný zošit v pracovných zošitoch
zošit.Zavrieť
Ďalší pracovný zošit
Koniec Sub
Vyššie uvedený kód zatvorí aj zošit makier; pred spustením tohto kódu sa uistite, že ste uložili svoje kódy.
Keďže slučky majú viacero použití, môžete tiež konsolidovať údaje z viacerých zošitov do jedného zošita.
Použitie vnoreného príkazu IF so slučkou
Podobne ako vo vyššie uvedenom príklade môžete použiť príkaz IF v rámci cyklu na kontrolu špecifických podmienok. Zmeňme farbu pozadia bunky na základe hodnôt bunky.
V bunkách A1:A20 je niekoľko náhodných čísel. Môžete napísať slučku na precyklenie každej danej bunky v rozsahu; ak je hodnota bunky menšia ako 10, farba bunky by sa mala zmeniť na červenú. Ak hodnota bunky presiahne 10, mala by sa zmeniť na zelenú. Na tento účel použite nasledujúci kód:
Sub loop_w_if()
Stlmiť c Ako Rozsah
Pre každé c v hárkoch("Hárok 4").Rozsah("A1:A20")
Akc.Hodnota < 10 Potom
c. Interiér. ColorIndex = 3
Inak: c. Interiér. ColorIndex = 4
KoniecAk
Ďalej c
Koniec Sub
Takto vyzerá výstup:
Používanie slučiek v Exceli VBA
Excel VBA nie je obmedzený len na pre každú slučku. Existuje množstvo užitočných slučiek, ktoré vám umožňujú ľahko vykonávať rôzne funkcie. Rozlúčte sa so všednými, manuálnymi úlohami, ako sú slučky VBA, ako je slučka for, robte while a robte dovtedy, kým vám uľahčia život.