Jokaisen silmukan käyttäminen Excel VBA:ssa

Jokaisen silmukan käyttäminen Excel VBA:ssa
Kaltaisesi lukijat auttavat tukemaan MUO:ta. Kun teet ostoksen käyttämällä sivustollamme olevia linkkejä, voimme ansaita kumppanipalkkion. Lue lisää.

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.





PÄIVÄN VIDEON TEKEMINEN JATKA SISÄLLÖLLÄ VIERÄTÄ

Jokaisen silmukan syntaksille

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





 For each variable_name in object_collection 

[statement]

[statement]

[statement]

Next variable_name

Silmukka alkaa 'jokaiselle' avainsanalla; 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.

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 Kaikki + F11 .
  2. Lisää moduuli napsauttamalla Moduuli vaihtoehto sisällä Lisää -välilehti.   Excel-arkki saraketulosteella's code editor
  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:





 Dim cell as range 

For each cell in Sheets("Sheet1").Range("A1:A10")

cell.value = 10

Next cell

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:





  VBA-koodinpätkä editorissa ja Excel-tulosteessa

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.

miksi puhelin kuumenee latauksen aikana
 Sub for_each_loop() 



Dim c As Range



For Each c In Sheets("Sheet1").Range("A1:A10")



With c

.Value = 10

.Font.Color = vbRed

.Font.Bold = True

.Font.Strikethrough = True



End With



Next c



End Sub
  VBA-koodinpätkä koodauseditorissa

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 kunkin solun arvon kanssa ja syöttää arvon 10:ksi. 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() 



For Each sht In ThisWorkbook.Sheets



If sht.Name = "Sheet1" Then



sht.Name = "Sheet3"



End If



Next sht



End Sub
  VBA-koodinpätkä editorissa

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() 



Dim wrkbook as workbook



Workbooks.Add

Workbooks.Add

Workbooks.Add



For Each wrkbook In Workbooks



wrkbook.



Next wrkbook



End Sub