Želite avtomatizirati ponavljajoča se opravila v Excelu z uporabo VBA? Naučite se uporabljati zanko Za vsak za učinkovito upravljanje podatkov v vaših preglednicah.

Zanke in VBA gredo skupaj in tudi z dobrim razlogom. Ko imate opravka s predmeti Microsoft Office, kot so delovni zvezki, delovni listi in obsegi, vam lahko zanke pomagajo relativno enostavno preklapljati med vsakim od njih.

Čeprav bolj ali manj vse zanke VBA dobro delujejo z objekti, je zanka »za vsak« ena najboljših možnosti za delo z zbirkami objektov. Če šele začnete uporabljati Excel VBA in želite obvladati zanko za vsako, se lahko hitro naučite iz nekaterih od teh primerov. Tukaj je vse, kar morate vedeti o tej najpomembnejši zanki.

Za sintakso vsake zanke

Sintaksa zanke za vsako je precej podobna običajni zanki for v Excelu VBA. Tukaj je sintaksa:

Za vsako variable_name v object_collection

[izjava]

[izjava]

[izjava]

Naslednje ime_spremenljivke

Zanka se začne s ključno besedo "za vsakega"; uporabite lahko poljubno ime spremenljivke, ki mu sledi zbirka objektov. Predmet v zanki za vsak so lahko celice, obsegi, listi in celo delovni zvezki. Takšna je lepota te zanke; daje vam prilagodljivost pri delu z različnimi Excelovimi zbirkami.

Zanka kroži skozi vsako vrednost zbirke in shrani sklic v definirano ime spremenljivke. Po izvedbi VBA izvede shranjene stavke v zanki in se premakne na naslednji objekt v zbirki ( Naslednji tukaj je v pomoč ključna beseda). Razumejmo strukturo kode z osnovnim primerom.

Kako uporabljati zanko za vsako v Excelu VBA

Recimo, da želite natisniti številko v celicah A1 do A10. Najboljši pristop je, da uporabite zanko za vsako s funkcijo obsega in pustite, da koda opravi vse potrebno. Tukaj je opisano, kako lahko opravite to preprosto nalogo:

  1. Odprite urejevalnik kode VBA s pritiskom Alt + F11.
  2. Vstavite modul s klikom na Modul možnost znotraj Vstavi zavihek.
  3. Ustvarite podprogram z ukazom sub() v oknu modula urejevalnika kode. Poskrbite, da boste podprogramu dodelili smiselno ime. Za ta primer lahko uporabite ime za_vsako_zanko.

Zdaj, ko osnov ni več, je čas, da začnete pisati kodo. Znotraj podprograma vnesite naslednje ukaze:

Zatemnjena celica kot obseg

Za vsako celico v Listi ("List1").Range("A1:A10")

vrednost celice = 10

Naslednja celica

Ko se koda izvede, se c spremenljivka bo shranila vrednost A1. Nato, ko se premakne na stavek znotraj zanke, ovrednoti ukaz in vnese vrednost 10 v definirano celico, tj. celico A1.

Nazadnje, ko se premakne na ključno besedo Next, se premakne na naslednjo vrednost, tj. celico A2. Zanka teče, dokler ne doseže celice A10. To je končni rezultat:

Uporaba zanke s predmeti: celice, listi in delovni zvezki

Excel ima tri glavne vrste predmetov, s katerimi redno delate. To so celice, listi in delovni zvezki. Tukaj je opisano, kako lahko uporabite zanko z vsemi tremi vrstami predmetov.

Skupno delo s celicami in zankami

Recimo, da želite dodati vrednost in nekaj pogojev oblikovanja obsegu celic v Listu1. Kot prvi korak morate definirati pogoje znotraj zanke, ki jim sledijo ukazi za oblikovanje.

V podprogram vnesite naslednjo kodo.

Sub for_each_loop()

Dim c Kot Razpon

Za vsak c v listih ("List1").Range("A1:A10")

z c

.Vrednost = 10

.Pisava. Barva = vbRdeča

.Pisava. Krepko = Prav

.Pisava. Prečrtano = Prav

Konecz

Naslednji c

Konec Sub

The z funkcija je uporabna pri izvajanju več funkcij z enim določenim predmetom. Ker želite izvesti niz nalog s spremenljivko c, jih lahko vse združite s funkcijo with..end with.

Zanka izenači vrednost c z vsako vrednostjo celice in vnese vrednost kot 10. Poleg tega spremeni barvo celice v rdečo, vrednost krepko poudari in jo prečrta. Ko konča vse korake, se premakne na naslednjo definirano vrednost v obsegu.

Uporaba zanke za nadzor listov

Podobno kot v zgornjem primeru lahko za nadzor listov uporabite zanko za vsako. Kaj pa spreminjanje imena Sheet1 v Sheet3 z VBA?

Za preimenovanje obstoječega delovnega lista v Excelu z VBA lahko uporabite naslednjo kodo:

Sub for_each_loop_sheets()

ZaVsakshtnotriTa delovni zvezek.Rjuhe

Če sht. Ime = "List1" Potem

sht. Ime = "List3"

Konecče

Naslednji sht

Konec Sub

Koda preleti vsak list v delovnem zvezku in preveri ime vsakega lista. Če naleti na ime Sheet1, ga spremeni v Sheet3. Napreduje skozi preostale liste, če obstajajo, v delovnem zvezku. Ko izvajanje kode doseže zadnji list, zapusti zanko in podprogram.

Med nekaterimi drugimi pogostimi uporabami lahko združite več delovnih listov z VBA in posodobite vsebino na enem listu z uporabo zank.

Preklapljajte med delovnimi zvezki z zanko

Končno lahko uporabite zanko za vsako za preklapljanje med različnimi delovnimi zvezki in izvajanje določenih nalog. Pokažimo to funkcijo s primerom.

Z ukazi VBA lahko dodate tri nove delovne zvezke in zaprete vse odprte skupaj. Takole lahko to storite:

Sub loop_wrkbook()

Dim wrkbook kot delovni zvezek

Delovni zvezki.Dodaj

Delovni zvezki.Dodaj

Delovni zvezki.Dodaj

Za vsak delovni zvezek v delovnih zvezkih

delovna knjiga.Zapri

Naslednja delovna knjiga

Konec Sub

Zgornja koda bo zaprla tudi vaš makro delovni zvezek; poskrbite, da ste shranili svoje kode, preden zaženete to kodo.

Ker imajo zanke več uporab, lahko tudi vi združite podatke iz več delovnih zvezkov v en sam delovni zvezek.

Uporaba ugnezdenega stavka IF z zanko

Tako kot v zgornjem primeru lahko uporabite stavek IF znotraj zanke, da preverite določene pogoje. Spremenimo barvo ozadja celice glede na vrednosti celice.

V celicah A1:A20 je nekaj naključnih števil. Napišete lahko zanko za kroženje skozi vsako dano celico v obsegu; če je vrednost celice manjša od 10, se mora barva celice spremeniti v rdečo. Če vrednost celice presega 10, mora postati zelena. Za ta namen uporabite naslednjo kodo:

Sub loop_w_if()

Dim c Kot Razpon

Za vsak c v listih ("List4").Range("A1:A20")

čec.Vrednost < 10 Potem

c. Notranjost. ColorIndex = 3

drugače: c. Notranjost. ColorIndex = 4

Konecče

Naslednji c

Konec Sub

Takole izgleda rezultat:

Uporaba zank v Excelu VBA

Excel VBA ni omejen samo na zanko za vsako. Obstaja vrsta uporabnih zank, ki vam omogočajo enostavno izvajanje različnih funkcij. Poslovite se od vsakdanjih, ročnih opravil, saj zanke VBA, kot je zanka for, do while in do until, vskočijo in vam olajšajo življenje.