Želite automatizirati zadatke koji se ponavljaju u Excelu pomoću VBA? Naučite kako koristiti petlju Za svaki za učinkovito rukovanje podacima u proračunskim tablicama.
Petlje i VBA idu zajedno, i to s dobrim razlogom. Kada radite s objektima Microsoft Officea kao što su radne knjige, radni listovi i rasponi, petlje vam mogu pomoći da se s relativnom lakoćom prebacite između svakog od njih.
Iako više-manje sve VBA petlje dobro rade s objektima, petlja "za svaki" jedna je od najboljih opcija za rad s zbirkama objekata. Ako ste novi u programu Excel VBA i želite svladati petlju for each, možete brzo učiti iz nekih od ovih primjera. Ovdje je sve što trebate znati o ovoj suštinskoj petlji.
Za sintaksu svake petlje
Sintaksa petlje for each vrlo je slična uobičajenoj petlji for u programu Excel VBA. Evo sintakse:
Za svaki variable_name u object_collection
[izjava]
[izjava]
[izjava]
Sljedeći naziv_varijable
Petlja počinje ključnom riječi "za svaki"; možete koristiti bilo koje ime varijable, nakon čega slijedi zbirka objekata. Objekt u petlji for each mogu biti ćelije, rasponi, listovi, pa čak i radne knjige. Takva je ljepota ove petlje; daje vam fleksibilnost za rad s različitim Excel zbirkama.
Petlja kruži kroz svaku vrijednost zbirke i pohranjuje referencu u definiranom nazivu varijable. Nakon izvršenja, VBA izvršava pohranjene naredbe unutar petlje i prelazi na sljedeći objekt u kolekciji ( Sljedeći ovdje je od pomoći ključna riječ). Razumimo strukturu koda na osnovnom primjeru.
Kako koristiti petlju za svaki u programu Excel VBA
Pretpostavimo da želite ispisati broj u ćelijama A1 do A10. Najbolji pristup je koristiti petlju for each s funkcijom raspona i pustiti da kod učini ono što je potrebno. Evo kako možete obaviti ovaj jednostavan zadatak:
- Otvorite uređivač VBA koda pritiskom na Alt + F11.
- Umetnite modul klikom na Modul opcija unutar Umetnuti tab.
- Stvorite potprogram pomoću naredbe sub() u prozoru modula uređivača koda. Obavezno dodijelite smisleno ime podrutini. Za ovaj primjer možete koristiti naziv za_svaku_petlju.
Sad kad su osnove maknute s puta, vrijeme je da počnete pisati kod. Unutar potprograma upišite sljedeće naredbe:
Zatamnjena ćelija kao domet
Za svaku ćeliju u Listovi ("List1").Raspon("A1:A10")
cell.value = 10
Sljedeća ćelija
Kada se kôd izvrši, c varijabla će pohraniti vrijednost A1. Zatim, dok prelazi na naredbu unutar petlje, procjenjuje naredbu i unosi vrijednost 10 u definiranu ćeliju, tj. ćeliju A1.
Na kraju, dok se pomiče na ključnu riječ Next, pomiče se na sljedeću vrijednost, tj. ćeliju A2. Petlja se izvodi dok ne dođe do ćelije A10. Ovo je konačni rezultat:
Korištenje petlje s objektima: ćelije, listovi i radne knjige
Excel ima tri glavne vrste objekata s kojima redovito radite. To su ćelije, listovi i radne bilježnice. Evo kako možete koristiti petlju sa sve tri vrste objekata.
Zajednički rad s ćelijama i petljama
Pretpostavimo da želite dodati vrijednost i neke uvjete oblikovanja rasponu ćelija u Sheet1. Kao prvi korak, trebate definirati uvjete unutar petlje, nakon čega slijede naredbe za oblikovanje.
Unesite sljedeći kod unutar potprograma.
Sub for_each_loop()
Dim c Kao Raspon
Za svaki c u listovima ("List1").Raspon("A1:A10")
S c
.Vrijednost = 10
.Font. Boja = vbCrvena
.Font. Podebljano = Pravi
.Font. Precrtano = Pravi
KrajS
Sljedeći c
Kraj Pod
The s Funkcija je korisna pri izvođenju više funkcija s jednim određenim objektom. Budući da želite izvršiti niz zadataka s varijablom c, možete ih sve kombinirati pomoću funkcije with..end with.
Petlja izjednačuje vrijednost c sa svakom vrijednošću ćelije i unosi vrijednost kao 10. Osim toga, mijenja boju ćelije u crvenu, podebljava vrijednost i precrtava je. Nakon što završi sve korake, prelazi na sljedeću definiranu vrijednost u rasponu.
Korištenje petlje za kontrolu listova
Slično gornjem primjeru, možete koristiti petlju za svaki za kontrolu listova. Što kažete na promjenu naziva Sheet1 u Sheet3 pomoću VBA?
Možete koristiti sljedeći kôd za preimenovanje postojećeg radnog lista u Excelu pomoću VBA:
Sub for_each_loop_sheets()
ZaSvakishtUOva radna knjiga.Listovi
Ako sht. Ime = "List1" Zatim
sht. Ime = "List3"
KrajAko
Sljedeći sht
Kraj Pod
Kod prolazi kroz svaki list unutar radne knjige i provjerava naziv svakog lista. Ako naiđe na naziv Sheet1, mijenja ga u Sheet3. Prolazi kroz preostale listove, ako ih ima, unutar radne knjige. Jednom kada izvršenje koda dosegne posljednji list, izlazi iz petlje i podrutine.
Između nekih drugih uobičajenih upotreba, možete spajanje više radnih listova pomoću VBA i ažurirajte sadržaj na jednom listu pomoću petlji.
Prelazite kroz radne knjige pomoću petlje
Konačno, možete koristiti for each petlju za prebacivanje kroz različite radne knjige i izvršavanje određenih zadataka. Pokažimo ovu funkciju na primjeru.
Možete koristiti VBA naredbe za dodavanje tri nove radne knjige i zatvaranje svih otvorenih zajedno. Evo kako to možete učiniti:
Sub loop_wrkbook()
Prigušena radna knjižica kao radna bilježnica
Radne bilježnice.Dodati
Radne bilježnice.Dodati
Radne bilježnice.Dodati
Za svaku radnu bilježnicu u Radnim bilježnicama
radna knjiga.Zatvoriti
Sljedeća radna knjiga
Kraj Pod
Gornji kod također će zatvoriti vašu makro radnu knjigu; provjerite jeste li spremili svoje kodove prije pokretanja ovog koda.
Budući da petlje imaju višestruku upotrebu, možete i vi objediniti podatke iz više radnih knjiga u jednu radnu knjigu.
Korištenje ugniježđene IF naredbe s petljom
Kao u gornjem primjeru, možete koristiti IF naredbu unutar petlje za provjeru specifičnih uvjeta. Promijenimo boju pozadine ćelije na temelju vrijednosti ćelije.
Postoji nekoliko nasumičnih brojeva u ćelijama A1:A20. Možete napisati petlju za kruženje kroz svaku zadanu ćeliju u rasponu; ako je vrijednost ćelije manja od 10, boja ćelije bi se trebala promijeniti u crvenu. Ako vrijednost ćelije prelazi 10, trebala bi postati zelena. U tu svrhu upotrijebite sljedeći kôd:
Sub loop_w_if()
Dim c Kao Raspon
Za svaki c u listovima ("List4").Raspon("A1:A20")
Akoc.Vrijednost < 10 Zatim
c. Interijer. Indeks boja = 3
Drugo: c. Interijer. Indeks boja = 4
KrajAko
Sljedeći c
Kraj Pod
Ovako izgleda izlaz:
Korištenje petlji u Excel VBA
Excel VBA nije ograničen samo na petlju za svaki. Postoji niz korisnih petlji koje vam omogućuju jednostavno izvođenje različitih funkcija. Oprostite se od svakodnevnih, ručnih zadataka, kao što su VBA petlje poput petlje for, do while i do until petlje koje vam olakšavaju život.