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ä
- Seuraava silmukka
- Jokaiselle silmukalle
- Tee silmukan aikana
- 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ä.