Kas soovite korduvaid ülesandeid Excelis VBA abil automatiseerida? Siit saate teada, kuidas kasutada tsüklit For Every, et oma arvutustabelites andmeid tõhusalt töödelda.

Loop ja VBA käivad koos ja ka mõjuval põhjusel. Kui käsitlete Microsoft Office'i objekte, nagu töövihikud, töölehed ja vahemikud, võivad tsüklid aidata teil suhteliselt hõlpsalt nende vahel ümber lülituda.

Kuigi enam-vähem kõik VBA tsüklid töötavad hästi objektidega, on silmus "iga jaoks" üks parimaid võimalusi objektikogudega töötamiseks. Kui olete Exceli VBA uus kasutaja ja soovite iga tsükli jaoks selgeks saada, saate mõnest neist näidetest kiiresti õppida. Siin on kõik, mida peate selle olulise tsükli kohta teadma.

Iga tsükli süntaksi jaoks

Iga tsükli süntaks on üsna sarnane Excel VBA tavapärasele tsüklile. Siin on süntaks:

Iga muutuja_nimi jaoks objektikogus

[avaldus]

[avaldus]

[avaldus]

Järgmine muutuja_nimi

Silmus algab märksõnaga "igaühele"; võite kasutada mis tahes muutuja nime, millele järgneb objektikogu. Iga tsükli objektiks võivad olla lahtrid, vahemikud, lehed ja isegi töövihikud. Selline on selle silmuse ilu; see annab teile paindlikkuse erinevate Exceli kogudega töötamiseks.

instagram viewer

Silmus liigub läbi iga koguväärtuse ja salvestab viite määratletud muutuja nimes. Pärast täitmist käivitab VBA tsüklis salvestatud laused ja liigub kogus järgmise objekti juurde ( järgmiseks märksõna on siin abiks). Mõistame koodi struktuuri põhinäite abil.

Kuidas kasutada iga tsükli jaoks Exceli VBA-s

Oletame, et soovite printida arvu lahtritesse A1 kuni A10. Parim viis on kasutada iga tsükli jaoks vahemiku funktsiooniga ja lasta koodil teha vajalik. Selle lihtsa ülesande saate teha järgmiselt.

  1. Avage VBA koodiredaktor, vajutades Alt + F11.
  2. Sisestage moodul, klõpsates nuppu Moodul valik sees Sisestage sakk.
  3. Looge alamrutiin, kasutades koodiredaktori mooduli aknas käsku sub(). Veenduge, et määrate alamprogrammile tähendusliku nime. Selle näite puhul võite kasutada nime iga_tsükli jaoks.

Nüüd, kui põhitõed on käest, on aeg hakata koodi kirjutama. Sisestage alamrutiini järgmised käsud:

Hämar rakk nagu ulatus

Iga raku jaoks sisse Lehed ("Leht1".Range("A1:A10")

lahter.väärtus = 10

Järgmine lahter

Kui kood käivitub, siis c muutuja salvestab A1 väärtuse. Järgmisena, kui ta liigub tsükli sees lause juurde, hindab see käsku ja sisestab määratletud lahtrisse, st lahtrisse A1, väärtuse 10.

Lõpuks, kui see liigub märksõnale Järgmine, liigub see järgmise väärtuse juurde, st lahtrisse A2. Silmus kulgeb, kuni see jõuab lahtrisse A10. See on lõplik väljund:

Silmuse kasutamine objektidega: lahtrid, lehed ja töövihikud

Excelil on kolm peamist objektitüüpi, millega te regulaarselt töötate. Need on lahtrid, lehed ja töövihikud. Siit saate teada, kuidas saate tsüklit kasutada kõigi kolme objektitüübiga.

Lahtrite ja silmustega koos töötamine

Oletame, et soovite lehel Sheet1 lahtrivahemikule lisada väärtuse ja mõned vormindamistingimused. Esimese sammuna peate määratlema tsükli tingimused ja seejärel vormindamiskäsud.

Sisestage alamrutiini järgmine kood.

Sub for_each_loop()

Hämar c Nagu Vahemik

Iga c In Sheets ("Leht1".Range("A1:A10")

Koos c

.Väärtus = 10

.Font. Värv = vbRed

.Font. Paksus = Tõsi

.Font. Läbikriipsutamine = Tõsi

LõppKoos

Järgmine c

Lõpp Sub

The koos funktsioon on kasulik mitme funktsiooni täitmisel ühe konkreetse objektiga. Kuna soovite muutujaga c täita ülesandeid, saate need kõik kombineerida, kasutades funktsiooni koos..end koos funktsiooniga.

Silmus võrdsustab c väärtuse iga lahtri väärtusega ja sisestab väärtuseks 10. Lisaks muudab see lahtri värvi punaseks, muudab väärtuse paksuks ja kriipsutab selle läbi. Kui see on kõik sammud lõpetanud, liigub see vahemiku järgmise määratletud väärtuse juurde.

Silmuse kasutamine lehtede juhtimiseks

Sarnaselt ülaltoodud näitele saate lehtede juhtimiseks kasutada iga silmuse jaoks nuppu. Kuidas oleks, kui muudaks VBA abil lehe Sheet1 nimeks Sheet3?

Olemasoleva töölehe Excelis VBA abil ümbernimetamiseks saate kasutada järgmist koodi.

Sub for_each_loop_sheets()

SestIgashtsisseSee töövihik.Lehed

Kui sht. Nimi = "Leht1" Siis

sht. Nimi = "leht3"

LõppKui

Järgmine sht

Lõpp Sub

Kood läbib töövihiku iga lehe ja kontrollib iga lehe nime. Kui see kohtab nime Sheet1, muudab see selle nimeks Sheet3. See edeneb töövihiku ülejäänud lehtede vahel, kui neid on. Kui koodi täitmine jõuab viimasele lehele, väljub see tsüklist ja alamrutiinist.

Mõne muu levinuma kasutuse hulgas saate seda teha liita mitu töölehte VBA abil ja värskendage sisu silmuste abil ühel lehel.

Lülitage tsükliga töövihikuid läbi

Lõpuks saate kasutada iga tsükli jaoks nuppu, et liikuda erinevate töövihikute vahel ja täita konkreetseid ülesandeid. Demonstreerime seda funktsiooni näitega.

VBA käskude abil saate lisada kolm uut töövihikut ja sulgeda kõik avatud töövihikud. Seda saate teha järgmiselt.

Sub loop_wrkbook()

Hämar tööraamat nagu töövihik

Töövihikud.Lisama

Töövihikud.Lisama

Töövihikud.Lisama

Iga töövihiku jaoks töövihikutes

tööraamat.Sulge

Järgmine tööraamat

Lõpp Sub

Ülaltoodud kood sulgeb ka teie makro töövihiku; veenduge, et olete oma koodid enne selle koodi käivitamist salvestanud.

Kuna silmustel on mitu kasutust, saate ka seda teha koondada mitme töövihiku andmed ühte töövihikusse.

Pesastatud IF-lause kasutamine koos tsükliga

Nagu ülaltoodud näites, saate konkreetsete tingimuste kontrollimiseks kasutada tsüklis IF-lauset. Muudame lahtri taustavärvi lahtri väärtuste alusel.

Lahtrites A1:A20 on mõned juhuslikud numbrid. Saate kirjutada tsükli, et liikuda läbi vahemiku iga antud lahtri; kui lahtri väärtus on väiksem kui 10, peaks lahtri värv muutuma punaseks. Kui lahtri väärtus ületab 10, peaks see muutuma roheliseks. Kasutage selleks järgmist koodi:

Alamsilmus_w_if()

Hämar c Nagu Vahemik

Iga c In Sheets ("Leht4".Range("A1:A20")

Kuic.Väärtus < 10 Siis

c. Interjöör. ColorIndex = 3

Muidu: c. Interjöör. Värviindeks = 4

LõppKui

Järgmine c

Lõpp Sub

Väljund näeb välja selline:

Silmuste kasutamine Exceli VBA-s

Exceli VBA ei piirdu ainult iga tsükli jaoks. Seal on palju kasulikke silmuseid, mis võimaldavad teil erinevaid funktsioone hõlpsalt täita. Jätke hüvasti igapäevaste käsitsi tehtavate ülesannetega, kuna VBA tsüklid nagu for-silmus, tehke samal ajal ja tehke seni, kuni silmused teie elu lihtsamaks muudavad.