VBA-silmukat - Luettelo 4 parhaasta silmukatyypistä (esimerkkejä)

Sisällysluettelo

Excel VBA -silmukat

Silmukoita käytetään yleisesti kaikilla ohjelmointikielillä, joissa on tietty tarve tai kriteeri, kun tarvitsemme tietyn koodin tiettyjen aikojen suorittamiseen, käytämme silmukoita näille koodeille, nyt VBA: ssa on monenlaisia ​​silmukoita, kuten Do taas, Tee kunnes, Silmukalle ja Jokaiselle silmukalle nämä silmukat auttavat koodia suorittamaan, kunnes ehto täyttyy.

Sallikaa minun tehdä tämä toteamus aivan alussa. "Jos haluat hallita VBA: ssa, sinun on viimeisteltävä silmukoiden käsite VBA-makroissa."

Silmukka ei ole mitään muuta kuin käydä läpi solualue, käydä läpi useita esineitä toistamaan sama tehtävä solujen tai esineiden keräämiseksi. Sen sijaan, että teemme tehtävän erillisessä koodirivisarjassa silmukoiden avulla, voimme lyhentää koodin pituutta mahdollisimman pieneksi.

Luettelo 4 parhaasta VBA-silmukan tyypistä

  1. Seuraava silmukka
  2. Jokaiselle silmukalle
  3. Tee silmukan aikana
  4. Tee kunnes silmukka

Katsotaanpa nämä tyypit yksityiskohtaisesti.

Tyyppi # 1 - Seuraava silmukka

Seuraavan silmukan avulla voimme siirtyä solualueen läpi ja suorittaa saman tehtävän jokaiselle silmukassa määritetylle solulle. Tässä meidän on kerrottava aloitus- ja loppunumero.

Esimerkki

Esimerkiksi, jos haluat lisätä sarjanumeroita 1-10, alla on perinteinen tapa lisätä sarjanumeroita.

Sarjanumero ()

Alue (“A1”). Arvo = 1
Alue (“A2”). Arvo = 2
Alue (“A3”). Arvo = 3
Alue (“A4”). Arvo = 4
Alue (“A5”). Arvo = 5
Alue ("A6"). Arvo = 6
Alue ("A7"). Arvo = 7
alue ("A8"). Arvo = 8
alue ("A9"). Arvo = 9
alue ("A10"). Arvo = 10

End Sub

Näyttää hyvältä, eikö olekin? Mutta ongelma tässä on vain 10 kertaa, kun meidän on suoritettava tämä tehtävä. Mutta kuvittele, mitä jos haluat lisätä 100 tai 1000 numeroa, voitko kirjoittaa koodin 100 tai 1000 riviä. Se on mahdotonta, ja siinä For For -silmukan kauneus tulee käteväksi.

Vaihe 1: Avaa makro ja julistaa muuttuja i kuin kokonaisluku.

Sub Insert_Serial_Number ()

Dim i kokonaislukuna

End Sub

Vaihe 2: Avaa nyt For Loop . Mainitse tässä silmukan alku ja loppu muuttujan i avulla.

Vaihe 3: Kirjoita nyt koodi, jonka haluat suorittaa. Meidän on lisättävä numeroita 1-10 A1 - A10-soluihin. Käytä Range-menetelmän sijasta Cells-menetelmää.

Se kysyy rivinumeroa, koska olemme jo ilmoittaneet muuttujan i aluksi kokonaisluvuksi. Sen arvo on 1. Joten mainita i pidät rivin numero ja 1 kuin sarakkeessa numeron.

Nyt nykyisen soluarvon pitäisi olla yksi sen sijaan, että mainitsisit numero ensimmäisen maininnan i arvona. Koska joka kerta silmukan kulkee i arvo tulee lisää 1.

Paina nyt F8-näppäintä siirtyäksesi yksi kerrallaan. Paina F8, kunnes se saavuttaa For-silmukan.

Tämä keltainen väri on merkki siitä, että valittu koodirivi on alkamassa. Aseta kohdistin I: n kohdalle , ja se näyttää arvon nollana.

Paina nyt vielä kerran F8-näppäintä ja vie kohdistin i: lle ja nyt arvo on 1.

Joten i : n arvot kaikkialla ovat nyt yhtä suuria. " Solut (I, 1) .arvo = I" tarkoittaa Soluja (1, 1) .arvo = 1.

Paina F8-näppäintä ja katso arvo solussa A1. Sinun täytyy nähdä 1 solussa A1.

Jos painat F8-näppäintä, se palaa vielä kerran For-silmukkaan, koska muuttujan i loppuraja on 10. Tällä kertaa I- arvo on 2.

Seuraava silmukka toimii 10 kertaa ja lisää sarjanumerot 1-10.

Tyyppi # 2 - jokaiselle silmukalle

Jokaiselle VBA: n silmukalle on tarkoitus luoda silmukoita objektikokoelman läpi. Seuraavalle silmukalle silmukat solujen läpi ja suorita tehtävä, ja jokaiselle silmukalle silmukka läpi esineiden, kuten laskentataulukot, kaaviot, työkirjat, muodot.

Tämän silmukan avulla voimme käydä läpi kaikki laskentataulukot ja suorittaa joitain tehtäviä. Voit esimerkiksi piilottaa ja näyttää piilotetut taulukot piirtämällä kaikki laskentataulukot.

Esimerkki 1

Kuinka haluat piilottaa kaikki laskentataulukot paitsi arkin, jolla työskentelet? Jos työkirjassa on 20 arkkia, se on aikaa vievä prosessi. Mutta jokaisen silmukan avulla voimme suorittaa tämän tehtävän.

Minulla on 5 arkkia, ja haluan piilottaa kaikki arkit paitsi että alla oleva koodi "Main" suorittaa tehtävän minulle.

Sub To_Hide_All_Sheet ()

Himmennä Ws-taulukko

Jokaiselle W: lle ActiveWorkbookissa

Jos Ws.Name “Main” Sitten
Ws.Visible = xlSheetVeryHidden
End If

Seuraava Ws

End Sub

Esimerkki 2

Jos haluat piilottaa kaikki piilotetut taulukot, alla oleva koodi tekee työn puolestasi.

Sub To_UnHide_Specific_Sheet ()

Himmennä Ws-taulukko

Jokaiselle W: lle ActiveWorkbookissa

Ws.Visible = xSheetVisible

Seuraava Ws

End Sub

Tyyppi # 3 - Tee silmukan aikana

Do While -silmukka suorittaa tehtävän, kun annettu ehto on TOSI, ja kun ehdosta tulee EPÄTOSI, se lopettaa silmukan. Toisin kuin kaksi muuta silmukkaa, Do While testaa tilan silmukan lopussa, ei alussa.

Näytän sinulle esimerkin sarjanumeroiden lisäämisestä Do While -silmukalla.

Sub Do_While_Example ()

Dim i kokonaislukuna

i = 1
Tee kun i <11
solua (i, 1). Arvo = i
i = i + 1
silmukka

End Sub

Yllä oleva silmukka suoritetaan, kun i on alle 11 ja lisää sarjanumeroita. Heti kun minusta tulee suurempi kuin 11, se lopettaa silmukan.

Tyyppi # 4 - Tee kunnes silmukka

Toisin kuin Do-silmukka, Do-silmukka ei toimi kun ehto on TOSI; pikemminkin se silmukkaa, kunnes ehto on EPÄTOSI. Katso esimerkiksi alla oleva koodi.

Sub Do_Until_Example ()

Dim i kokonaislukuna

i = 1
Tee kunnes i = 11
solua (i, 1). arvo = i
i = i + 1
silmukka

End Sub

Ainoa ero Do While & Do Until -silmukan välillä on määrittelemämme operaattori. Kohdassa Do, vaikka mainitsimme silmukan suorittamisen, kun i on pienempi kuin (<), 11 mutta teemme silmukkaan asti, mainitsimme silmukan suorittamisen, kunnes i on yhtä suuri kuin (=) - 11.

Muistettavaa

  • On edistyneempi Excel VBA -silmukan esimerkki, mutta käsittelemme kukin niistä erillisessä artikkelissa yksityiskohtaisesti.
  • Jokainen silmukka on objektimuuttujille.
  • Vaikka Do While & Do Until näyttää samalta, ehdon mainitseminen on erittäin tärkeää.
  • Silmukat ovat erittäin tärkeitä käsitteitä.

Mielenkiintoisia artikkeleita...