Ž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.

instagram viewer

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:

  1. Otvorite uređivač VBA koda pritiskom na Alt + F11.
  2. Umetnite modul klikom na Modul opcija unutar Umetnuti tab.
  3. 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.