Haluatko automatisoida toistuvia tehtäviä Excelissä VBA: n avulla? Opi käyttämään For Every -silmukkaa laskentataulukoiden tietojen tehokkaaseen käsittelyyn.

Loopit ja VBA sopivat yhteen, ja myös hyvästä syystä. Kun käsittelet Microsoft Office -objekteja, kuten työkirjoja, laskentataulukoita ja alueita, silmukat voivat auttaa sinua vaihtamaan niiden välillä suhteellisen helposti.

Vaikka enemmän tai vähemmän kaikki VBA-silmukat toimivat hyvin objektien kanssa, "jokaiselle" -silmukka on yksi parhaista vaihtoehdoista työskennellä objektikokoelmien kanssa. Jos olet uusi Excel VBA: ssa ja haluat hallita jokaisen silmukan, voit oppia joistakin näistä esimerkeistä nopeasti. Tässä on kaikki mitä sinun tulee tietää tästä olennaisesta silmukasta.

Jokaisen silmukan syntaksille

Jokaisen silmukan syntaksi on melko samanlainen kuin tavallinen for silmukan Excel VBA: ssa. Tässä on syntaksi:

Jokaiselle objektikokoelman muuttujan_nimi

[lausunto]

[lausunto]

[lausunto]

Seuraava muuttujan_nimi

Silmukka alkaa avainsanalla "jokaiselle"; voit käyttää mitä tahansa muuttujan nimeä ja sen jälkeen objektikokoelmaa. Jokaisen silmukan objekti voi olla soluja, alueita, taulukoita ja jopa työkirjoja. Tällainen on tämän silmukan kauneus; se antaa sinulle joustavuuden työskennellä eri Excel-kokoelmien kanssa.

instagram viewer

Silmukka kiertää jokaisen kokoelmaarvon läpi ja tallentaa viitteen määritettyyn muuttujan nimeen. Suorituksen jälkeen VBA suorittaa silmukassa tallennetut lausekkeet ja siirtyy kokoelman seuraavaan objektiin ( Seuraava avainsana on hyödyllinen tässä). Ymmärretään koodin rakenne perusesimerkillä.

Jokaisen silmukan käyttäminen Excel VBA: ssa

Oletetaan, että haluat tulostaa numeron soluihin A1–A10. Paras tapa on käyttää for kullekin silmukalle range-funktiota ja antaa koodin tehdä tarvittavat. Näin voit tehdä tämän yksinkertaisen tehtävän:

  1. Avaa VBA-koodieditori painamalla Alt + F11.
  2. Lisää moduuli napsauttamalla Moduuli vaihtoehto sisällä Lisää -välilehti.
  3. Luo alirutiini käyttämällä sub()-komentoa koodieditorimoduulin ikkunassa. Varmista, että annat aliohjelmalle merkityksellisen nimen. Tässä esimerkissä voit käyttää nimeä for_each_loop.

Nyt kun perusasiat ovat poissa tieltä, on aika aloittaa koodin kirjoittaminen. Kirjoita aliohjelmassa seuraavat komennot:

Himmeä solu kuten alue

Jokaiselle solulle sisään Sheets("Arkki1").Alue("A1:A10")

solu.arvo = 10

Seuraava solu

Kun koodi suoritetaan, c muuttuja tallentaa A1:n arvon. Seuraavaksi siirryttäessä lauseeseen silmukan sisällä se arvioi komennon ja syöttää arvon 10 määritettyyn soluun, eli soluun A1.

Lopuksi, kun se siirtyy Seuraava-avainsanaan, se siirtyy seuraavaan arvoon, eli soluun A2. Silmukka kulkee, kunnes se saavuttaa solun A10. Tämä on lopullinen tulos:

Silmukan käyttäminen objektien kanssa: solut, taulukot ja työkirjat

Excelissä on kolme pääobjektityyppiä, joiden kanssa työskentelet säännöllisesti. Nämä ovat soluja, taulukoita ja työkirjoja. Näin voit käyttää silmukkaa kaikkien kolmen objektityypin kanssa.

Työskentely solujen ja silmukoiden kanssa yhdessä

Oletetaan, että haluat lisätä arvon ja joitakin muotoiluehtoja Sheet1:n solualueelle. Ensimmäisenä vaiheena sinun on määritettävä ehdot silmukassa ja sen jälkeen muotoilukomennot.

Kirjoita seuraava koodi aliohjelmaan.

Sub for_each_loop()

Himmeä c Kuten Alue

Jokaiselle c In Sheets("Arkki1").Alue("A1:A10")

Kanssa c

.Arvo = 10

.Fontti. Väri = vbRed

.Fontti. Lihavoitu = Totta

.Fontti. Yliviivaus = Totta

LoppuKanssa

Seuraava c

Loppu Sub

The kanssa toiminto on hyödyllinen suoritettaessa useita toimintoja yhdelle tietylle objektille. Koska haluat suorittaa sarjan tehtäviä c-muuttujalla, voit yhdistää ne kaikki käyttämällä with..end with -funktiota.

Silmukka rinnastaa c: n arvon jokaisen solun arvon kanssa ja syöttää arvon 10:nä. Lisäksi se muuttaa solun värin punaiseksi, lihavoittaa arvon ja ylittää sen. Kun se on suorittanut kaikki vaiheet, se siirtyy seuraavaan määritettyyn arvoon alueella.

Silmukan käyttäminen taulukoiden ohjaamiseen

Kuten yllä olevassa esimerkissä, voit käyttää jokaista silmukkaa ohjataksesi arkkeja. Entä jos muuttaisit Sheet1:n nimen Sheet3:ksi VBA: n avulla?

Voit nimetä olemassa olevan laskentataulukon uudelleen Excelissä VBA: n avulla seuraavalla koodilla:

Sub for_each_loop_sheets()

vartenJokainenshtSisäänTämä työkirja.Lakanat

Jos sht. Nimi = "Arkki1" Sitten

sht. Nimi = "Arkki 3"

LoppuJos

Seuraava sht

Loppu Sub

Koodi kiertää jokaisen työkirjan arkin läpi ja tarkistaa jokaisen arkin nimen. Jos se kohtaa nimen Sheet1, se muuttaa sen muotoon Sheet3. Se etenee työkirjan jäljellä olevien arkkien läpi, jos sellaisia ​​on. Kun koodin suoritus saavuttaa viimeisen arkin, se poistuu silmukasta ja aliohjelmasta.

Joidenkin muiden yleisten käyttötarkoitusten joukossa voit yhdistää useita laskentataulukoita VBA: n avulla ja päivitä sisältö yhdelle arkille silmukoiden avulla.

Siirry työkirjojen läpi silmukan avulla

Lopuksi voit käyttää kullekin silmukalle -painiketta vaihtaaksesi eri työkirjoja ja suorittaaksesi tiettyjä tehtäviä. Esitetään tämä toiminto esimerkillä.

VBA-komentojen avulla voit lisätä kolme uutta työkirjaa ja sulkea kaikki avoimet yhteen. Näin voit tehdä sen:

Sub loop_wrkbook()

Hämärä työkirja kuten työkirja

Työkirjat.Lisätä

Työkirjat.Lisätä

Työkirjat.Lisätä

Jokaiselle työkirjalle työkirjoissa

työkirja.Kiinni

Seuraava työkirja

Loppu Sub

Yllä oleva koodi sulkee myös makrotyökirjan; varmista, että olet tallentanut koodisi ennen tämän koodin suorittamista.

Koska silmukoilla on useita käyttötarkoituksia, voit myös yhdistää tiedot useista työkirjoista yhdeksi työkirjaksi.

Sisäkkäisen IF-lausekkeen käyttäminen silmukan kanssa

Kuten yllä olevassa esimerkissä, voit käyttää IF-lausetta silmukassa tiettyjen ehtojen tarkistamiseen. Muutetaan solun taustaväri solun arvojen perusteella.

Soluissa A1:A20 on muutama satunnaisluku. Voit kirjoittaa silmukan käydäksesi läpi kunkin alueen solun; jos solun arvo on pienempi kuin 10, solun värin tulee muuttua punaiseksi. Jos solun arvo ylittää 10, sen pitäisi muuttua vihreäksi. Käytä tähän tarkoitukseen seuraavaa koodia:

Sub loop_w_if()

Himmeä c Kuten Alue

Jokaiselle c In Sheets("Arkki 4").Alue("A1:A20")

Josc.Arvo < 10 Sitten

c. Sisustus. ColorIndex = 3

Muu: c. Sisustus. ColorIndex = 4

LoppuJos

Seuraava c

Loppu Sub

Tuotos näyttää tältä:

Silmukoiden käyttäminen Excel VBA: ssa

Excel VBA ei rajoitu vain jokaiselle silmukalle. On olemassa useita hyödyllisiä silmukoita, joiden avulla voit suorittaa erilaisia ​​toimintoja helposti. Jätä hyvästit arkipäiväisille, manuaalisille tehtäville, sillä VBA: n silmukat kuten for-silmukat, tee vähän aikaa ja tee, kunnes silmukat helpottavat elämääsi.