Jotta saat kaiken irti Excelistä ja VBA: sta, sinun on tiedettävä kuinka käyttää silmukoita tehokkaasti.
VBA: ssa silmukoiden avulla voit käydä läpi joukon objekteja/arvoja ja analysoida niitä yksi kerrallaan. Voit myös suorittaa tiettyjä tehtäviä kullekin silmukalle.
Tässä on yksinkertainen esimerkki VBA -silmukoiden käyttämisestä Excelissä.
Oletetaan, että sinulla on tietojoukko ja haluat korostaa kaikki solut parillisilla riveillä. Voit käyttää VBA -silmukkaa alueen läpi ja analysoida jokaisen solurivin numeron. Jos se osoittautuu tasaiseksi, annat sille värin, muuten jätät sen sellaisenaan.
Nyt tämä on tietysti hyvin yksinkertaista silmukoida Excel VBA: ssa (ja voit tehdä tämän myös ehdollisella muotoilulla).
Tosielämässä voit tehdä paljon enemmän Excelin VBA -silmukoilla, jotka voivat auttaa sinua automatisoimaan tehtäviä.
Tässä on muutamia käytännön esimerkkejä, joissa VBA -silmukoista voi olla hyötyä:
- Silmukka eri solualueiden läpi ja kunkin solun analysointi (korosta solut, joissa on tietty teksti).
- Selaa kaikki laskentataulukot läpi ja tee jokaiselle jotain (kuten suojaa/poista suojaus).
- Selaa kaikki avoimet työkirjat läpi (ja tallenna jokainen työkirja tai sulje kaikki paitsi aktiivinen työkirja).
- Selaa kaikki solun merkit (ja poimi numeerinen osa merkkijonosta).
- Selaa taulukon kaikki arvot läpi.
- Selaa kaikki kaaviot/objektit (ja anna reunus tai muuta taustaväriä).
Jotta voit parhaiten käyttää silmukoita Excel VBA: ssa, sinun on tiedettävä olemassa olevat eri lajit ja niiden oikea syntaksi.
Tässä opetusohjelmassa esittelen erityyppisiä Excel VBA -silmukoita ja katan muutamia esimerkkejä jokaisesta silmukasta
Huomautus: Tästä tulee valtava opetusohjelma, jossa yritän kattaa jokaisen VBA -silmukan yksityiskohtaisesti. Suosittelen, että lisäät tämän sivun kirjanmerkkeihin tulevaa käyttöä varten.Jos olet kiinnostunut VBA: n oppimisesta helpolla tavalla, tutustu minun Online Excel VBA -koulutus.
Seuraava silmukka
"Seuraavaksi" -silmukan avulla voit käydä läpi koodilohkon määritetyn määrän kertoja.
Jos esimerkiksi pyydän sinua lisäämään kokonaisluvut 1 - 10 manuaalisesti, lisäät kaksi ensimmäistä numeroa, lisäät sitten kolmannen numeron tulokseen ja lisäät sitten neljännen numeron tulokseen jne.
Eikö olekin?
Samaa logiikkaa käytetään VBA: n For Next -silmukassa.
Määrität, kuinka monta kertaa haluat silmukan suoritettavan, ja määrität myös, mitä haluat koodin tekevän joka kerta, kun silmukka suoritetaan.
Alla on Seuraava -silmukan syntaksi:
Laskuri = alusta loppuun [vaihearvo] [suoritettava koodilohko] Seuraava [laskuri]
For Next -silmukassa voit käyttää laskuria (tai mitä tahansa muuttujaa), jota käytetään silmukan suorittamiseen. Tämän laskurin avulla voit suorittaa tämän silmukan tarvittavan määrän kertoja.
Jos esimerkiksi haluan lisätä ensimmäiset 10 positiivista kokonaislukua, laskuri -arvoni olisi 1-10.
Katsotaanpa muutamia esimerkkejä ymmärtääksemme paremmin, miten For Next -silmukka toimii.
Esimerkki 1 - Ensimmäisten 10 positiivisen kokonaisluvun lisääminen
Alla on koodi, joka lisää 10 ensimmäistä positiivista kokonaislukua For For Next -silmukan avulla.
Sitten se näyttää viestiruudun, jossa näkyy näiden numeroiden summa.
Sub AddNumbers () Dim Yhteensä kokonaislukuna Dim Count kokonaislukuna Yhteensä = 0 Laskenta = 1-10 Yhteensä = Yhteensä + Laske seuraava lasku MsgBox Yhteensä End Sub
Tässä koodissa Total -arvoksi on asetettu 0 ennen kuin siirrytään seuraavaan silmukkaan.
Kun se pääsee silmukkaan, se pitää kokonaisarvon jokaisen silmukan jälkeen. Joten ensimmäisen silmukan jälkeen, kun laskuri on 1, kokonaisarvosta tulee 1 ja toisen silmukan jälkeen 3 (1+2) jne.
Ja lopuksi, kun silmukka päättyy, muuttujalla Total on kymmenen ensimmäisen positiivisen kokonaisluvun summa.
MsgBox näyttää sitten tuloksen yksinkertaisesti viestiruudussa.
Esimerkki 2 - Ensimmäisten 5 parillisen positiivisen kokonaisluvun lisääminen
Jos haluat laskea yhteen viisi ensimmäistä parillista kokonaislukua (eli 2,4,6,8 ja 10), tarvitset samanlaisen koodin, jolla on ehto ottaa huomioon vain parilliset luvut ja jättää huomiotta parittomat luvut.
Tässä on koodi, joka tekee sen:
Sub AddEvenNumbers () Dim Yhteensä kokonaislukuna Dim Count kokonaislukuna Yhteensä = 0 Laskenta = 2-10 Vaihe 2 Yhteensä = Yhteensä + Laske seuraava lasku MsgBox Yhteensä End Sub
Huomaa, että aloitimme Count -arvon 2: sta ja käytimme myös "Vaihe 2‘.
Kun käytät "Vaihe 2", se kehottaa koodia lisäämään "Count" -arvoa 2: lla joka kerta, kun silmukka suoritetaan.
Joten Count -arvo alkaa 2: sta ja muuttuu sitten 4, 6, 8 ja 10 silmukan tapahtuessa.
HUOMAUTUS: Toinen tapa tehdä tämä voisi olla ajaa silmukka 1: stä 10: een ja tarkistaa silmukan sisällä, onko numero parillinen vai pariton. Vaiheen käyttäminen tässä tapauksessa on kuitenkin tehokkaampi tapa, koska se ei edellytä silmukan suorittamista 10 kertaa, vaan vain 5 kertaa.
Vaihearvo voi olla myös negatiivinen. Tällaisessa tapauksessa laskuri aloittaa korkeammasta arvosta ja pienenee jatkuvasti määritetyn vaihearvon mukaan.
Esimerkki 3 - Sarjanumeron syöttäminen valittuihin soluihin
Voit myös käyttää Seuraava -silmukkaa läpi objektikokoelman (kuten solut tai laskentataulukot tai työkirjat),
Tässä on esimerkki, joka syöttää sarjanumerot nopeasti kaikkiin valittuihin soluihin.
Sub EnterSerialNumber () Dim Rng As Range Dim Dimer Counter Integer Set Sub
Yllä oleva koodi laskee ensin valittujen rivien määrän ja määrittää tämän arvon muuttujalle RowCount. Suoritamme sitten silmukan 1: stä RowCountiin.
Huomaa myös, että koska valinta voi olla mikä tahansa määrä rivejä, olemme asettaneet muuttujan Rng arvoksi Selection (rivillä Set Rng = Selection). Nyt voimme käyttää muuttujaa 'Rng' viittaamaan koodimme valintaan.
Esimerkki 4 - Suojaa kaikki aktiivisen työkirjan laskentataulukot
Voit käyttää "Seuraavaksi" -silmukkaa läpi kaikki aktiivisen työkirjan laskentataulukot ja suojata (tai poistaa suojauksen) jokainen laskentataulukko.
Alla on koodi, joka tekee tämän:
Sub ProtectWorksheets () Dim i kokonaislukuna i = 1 ActiveWorkbookiin. Työsivut. Laske laskentataulukot (i). Suojaa seuraava i Loppuosa
Yllä oleva koodi laskee arkkien määrän käyttämällä ActiveWorkbook.Worksheets.Count. Tämä kertoo VBA: lle, kuinka monta kertaa silmukka on suoritettava.
Jokaisessa tapauksessa se viittaa Ith -työkirjaan (käyttäen laskentataulukoita (i)) ja suojaa sitä.
Voit käyttää samaa koodia myös laskentataulukoiden suojauksen poistamiseen. Vaihda vain rivi Laskentataulukot (i). Suojaa kohteeseen Laskentataulukot (i) .UnProtect.
Sisäkkäiset ”For Next” -silmukat
Voit käyttää sisäkkäisiä "For Next" -silmukoita saadaksesi monimutkaisemman automatisoinnin Excelissä. Sisäkkäinen 'For Next' -silmukka tarkoittaisi, että 'For Next' -silmukassa on 'For Next' -silmukka.
Näytän kuinka käytät tätä esimerkin avulla.
Oletetaan, että järjestelmässäni on avoinna viisi työkirjaa ja haluan suojata kaikkien näiden työkirjojen laskentataulukot.
Alla on koodi, joka tekee tämän:
Sub ProtectWorksheets () Dim i kokonaislukuna Dim j kokonaislukuna i = 1 Työkirjoihin. Laskuta j = 1 työkirjoihin (i). Työkirjat. Laske työkirjat (i). Työsivut (j). Suojaa seuraava j Seuraava i Loppuosa
Yllä oleva on sisäkkäinen For Next -silmukka, koska olemme käyttäneet yhtä For Next -silmukkaa toisen sisällä.
EXIT For -lausekkeet For Next Loops
Exit For -lausekkeen avulla voit poistua For For Next -silmukasta kokonaan.
Voit käyttää sitä tapauksissa, joissa haluat Seuraava -silmukan päättyvän, kun tietty ehto täyttyy.
Otetaan esimerkki, jossa sarakkeessa A on joukko numeroita ja haluat korostaa kaikki negatiiviset numerot punaisella fontilla. Tässä tapauksessa meidän on analysoitava jokaisen solun arvo ja muutettava sitten fontin väri vastaavasti.
Mutta koodin tehostamiseksi voimme ensin tarkistaa, onko luettelossa negatiivisia arvoja vai ei. Jos negatiivisia arvoja ei ole, voimme käyttää Exit For -lauseketta yksinkertaisesti ulos koodista.
Alla on koodi, joka tekee tämän:
Aliv. Sitten Lopeta Jos Rng (i). Arvo <0 Sitten Rng (i). Font.Color = vbPunainen Seuraava i Loppuosa
Kun käytät Exit For -käskyä sisäkkäisessä For For Next -silmukassa, se tulee ulos silmukasta, jossa se suoritetaan, ja jatkaa koodin seuraavan rivin suorittamista For For Next -silmukan jälkeen.
Esimerkiksi alla olevassa koodissa Exit For -lauseke vie sinut ulos sisäpiiristä, mutta ulompi silmukka toimisi edelleen.
Sub SampleCode () I = 1-10 J = 1-10 Poistu Seuraava J Seuraava i Loppuosa
Tee Silmukalla
Do Do -silmukan avulla voit tarkistaa ehdon ja suorittaa silmukan, kun ehto täyttyy (tai on TOSI).
Do While Loop -sovelluksessa on kahdenlaisia syntakseja.
Tee [kun ehto] [Koodilohko suoritettavaksi] -silmukka
ja
Tee [Koodilohko suoritettavaksi] -silmukka [Ehto]
Ero näiden kahden välillä on se, että ensimmäisessä vaiheessa Ehto tarkistetaan ensin ennen minkään koodilohkon suorittamista, ja toisessa tapauksessa koodilohko suoritetaan ensin ja sitten Vaikka -ehto tarkistetaan.
Tämä tarkoittaa, että jos Vaikka -ehto on epätosi, molemmat tapaukset esiintyvät, koodi suoritetaan edelleen ainakin kerran toisessa tapauksessa (koska "Vaikka" -ehto tarkistetaan sen jälkeen, kun koodi on suoritettu kerran).
Katsotaan nyt joitain esimerkkejä Do While -silmukoiden käytöstä VBA: ssa.
Esimerkki 1 - Lisää ensimmäiset 10 positiivista kokonaislukua käyttämällä VBA: ta
Oletetaan, että haluat lisätä kymmenen ensimmäistä positiivista kokonaislukua DoBA -silmukan avulla VBA: ssa.
Voit tehdä tämän käyttämällä Do While -silmukkaa, kunnes seuraava luku on pienempi tai yhtä suuri kuin 10. Heti kun luku on suurempi kuin 1o, silmukka pysähtyy.
Tässä on VBA -koodi, joka suorittaa tämän Do While -silmukan ja näyttää tuloksen viesti -ruudussa.
Sub AddFirst10PositiveIntegers () Dim i Kuten kokonaisluku i = 1 Tee samalla i <= 10 Tulos = Tulos + i i = i + 1 silmukka MsgBox Tulos Loppuosa
Yllä oleva silmukka toimii edelleen, kunnes i: n arvoksi tulee 11. Heti kun siitä tulee 11, silmukka päättyy (kun Vaikka -ehto tulee epätosi).
Silmukan sisällä olemme käyttäneet tulosmuuttujaa, joka pitää lopullisen arvon Kun silmukka on valmis, viesti -ruutu näyttää Result -muuttujan arvon.
Esimerkki 2 - Anna kuluvan kuukauden päivämäärät
Oletetaan, että haluat syöttää kaikki kuluvan kuukauden päivämäärät laskentataulukon sarakkeeseen.
Voit tehdä sen käyttämällä seuraavaa Do While -silmukakoodia:
Sub EnterCurrentMonthDates () Himmennä (i, 0) = CMDate i = i + 1 CMDate = CMDate + 1 Loop End Sub
Yllä oleva koodi kirjoittaisi kaikki päivämäärät laskentataulukon ensimmäiseen sarakkeeseen (alkaen A1). Silmukat jatkuvat, kunnes muuttujan CMDate kuukausi -arvo vastaa kuluvan kuukauden arvoa.
Poistu Do Statement
Voit poistua silmukasta Exit Do -lausekkeen avulla. Heti kun koodi suorittaa Exit Do -rivin, se tulee Do Do -silmukasta ja siirtää ohjauksen seuraavalle riville heti silmukan jälkeen.
Jos esimerkiksi haluat syöttää vain ensimmäiset 10 päivämäärää, voit poistua silmukasta heti, kun 10 ensimmäistä päivämäärää on syötetty.
Alla oleva koodi tekee tämän:
Sub EnterCurrentMonthDates () Himmennä (i, 0) = CMDate i = i + 1 Jos i> = 10 Sitten Exit Do CMDate = CMDate + 1 Loop End Sub
Yllä olevassa koodissa IF -käskyä käytetään tarkistamaan, onko i: n arvo suurempi kuin 10 tai ei. Heti kun i: n arvoksi tulee 10, Exit Do -käsky suoritetaan ja silmukka päättyy.
Tee kunnes silmukka
"Tee asti" -silmukat ovat hyvin samankaltaisia kuin Do Do -silmukat.
Do Do while -tilassa silmukka jatkuu, kunnes annettu ehto täyttyy, kun taas Do Do -toiminnossa silmukka jatkuu, kunnes määritetty ehto täyttyy.
Do Before Loop -kierroksessa on kahdenlaisia syntakseja.
Tee [kunnes ehto] [suoritettava koodilohko]
ja
Tee [Koodilohko suoritettavaksi] -silmukka [kunnes ehto]
Ero näiden kahden välillä on se, että ensimmäisessä Ennen -ehto tarkistetaan ensin ennen minkään koodilohkon suorittamista, ja toisessa tapauksessa koodilohko suoritetaan ensin ja sitten Kunnes -ehto tarkistetaan.
Tämä tarkoittaa, että jos Kunnes -ehto on TOSI, molemmat tapaukset, koodi suoritetaan edelleen ainakin kerran toisessa tapauksessa (koska Kunnes -ehto tarkistetaan sen jälkeen, kun koodi on suoritettu kerran).
Katsotaan nyt joitain esimerkkejä Do Before -lentojen käytöstä VBA: ssa.
Huomautus: Kaikki Do Before -esimerkin esimerkit ovat samat kuin Do While. Näitä on muokattu näyttämään, kuinka Do Until -silmukka toimii.
Esimerkki 1 - Lisää ensimmäiset 10 positiivista kokonaislukua käyttämällä VBA: ta
Oletetaan, että haluat lisätä kymmenen ensimmäistä positiivista kokonaislukua DoBA -silmukan avulla VBA: ssa.
Tätä varten sinun on suoritettava silmukka, kunnes seuraava luku on pienempi tai yhtä suuri kuin 10. Heti kun luku on suurempi kuin 1o, silmukka pysähtyy.
Tässä on VBA -koodi, joka suorittaa tämän silmukan ja näyttää tuloksen viestiruudussa.
Sub AddFirst10PositiveIntegers () Dim i Kuten kokonaisluku i = 1 Tee kunnes i> 10 Tulos = Tulos + i i = i + 1 Loop MsgBox Tulos Loppuosa
Yllä oleva silmukka toimii edelleen, kunnes i: n arvoksi tulee 11. Heti kun siitä tulee 11, silmukka päättyy (kun Kunnes -ehto muuttuu Tosi).
Esimerkki 2 - Anna kuluvan kuukauden päivämäärät
Oletetaan, että haluat syöttää kaikki kuluvan kuukauden päivämäärät laskentataulukon sarakkeeseen.
Voit tehdä sen käyttämällä seuraavaa Do till -silmukkakoodia:
Sub EnterCurrentMonthDates () Dim CMDate Päivämäärä Dim i Integer i = 0 CMDate = DateSerial (Vuosi (Päivämäärä), Kuukausi (Päivämäärä), 1) Tee kuukauteen asti (CMDate) Kuukausi (Päivämäärä) -alue ("A1"). i, 0) = CMDate i = i + 1 CMDate = CMDate + 1 Loop End Sub
Yllä oleva koodi kirjoittaisi kaikki päivämäärät laskentataulukon ensimmäiseen sarakkeeseen (alkaen A1). Silmukka jatkuu, kunnes muuttuvan CMDate -kuukauden kuukausi ei ole sama kuin kuluvan kuukauden kuukausi.
Poistu Do Statement
Voit käyttää Exit Do -lauseketta poistuaksesi silmukasta.
Heti kun koodi suorittaa Exit Do -rivin, se tulee Do Do -lenkille ja siirtää ohjauksen seuraavalle riville heti silmukan jälkeen.
Jos esimerkiksi haluat syöttää vain ensimmäiset 10 päivämäärää, voit poistua silmukasta heti, kun 10 ensimmäistä päivämäärää on syötetty.
Alla oleva koodi tekee tämän:
Sub EnterCurrentMonthDates () Dim CMDate Päivämäärä Dim i Integer i = 0 CMDate = DateSerial (Vuosi (Päivämäärä), Kuukausi (Päivämäärä), 1) Tee kuukauteen asti (CMDate) Kuukausi (Päivämäärä) -alue ("A1"). i, 0) = CMDate i = i + 1 Jos i> = 10 Sitten Exit Do CMDate = CMDate + 1 Loop End Sub
Yllä olevassa koodissa, kun i: n arvoksi tulee 10, Exit Do -lauseke suoritetaan ja silmukka päättyy.
Jokaiselle
VBA: ssa voit selata kokoelmia käyttämällä jokaista silmukkaa.
Tässä muutamia esimerkkejä Excel VBA: n kokoelmista:
- Kokoelma kaikkia avoimia työkirjoja.
- Kokoelma työkirjan kaikista laskentataulukoista.
- Kokoelma kaikista soluista valikoiduissa soluissa.
- Kokoelma kaikkia työkirjan kaavioita tai muotoja.
"Jokaiselle" -silmukan avulla voit käydä läpi kokoelman kaikki objektit ja suorittaa sille jonkin toiminnon.
Voit esimerkiksi käydä läpi kaikki työkirjan laskentataulukot ja suojata ne tai voit käydä läpi kaikki valinnan solut ja muuttaa muotoilua.
Jokaiselle silmukalle (jota kutsutaan myös nimellä "Jokaiselle seuraavaksi" -silmukka) sinun ei tarvitse tietää, kuinka monta kohdetta kokoelmassa on.
"Jokaiselle" -silmukka kulkee automaattisesti kunkin objektin läpi ja suorittaa määritetyn toiminnon. Jos haluat esimerkiksi suojata kaikki työkirjan laskentataulukot, koodi olisi sama riippumatta siitä, onko sinulla työkirja, jossa on 3 tai 30 laskentataulukkoa.
Tässä on Jokaisen seuraavan silmukan syntaksi Excel VBA: ssa.
Jokaiselle elementille kokoelmassa [Suoritettava koodilohko] Seuraava [elementti]
Katsotaanpa nyt pari esimerkkiä Excelin jokaisen silmukan käytöstä.
Esimerkki 1 - Käy läpi kaikki työkirjan laskentataulukot (ja suojaa se)
Oletetaan, että sinulla on työkirja, jossa haluat suojata kaikki laskentataulukot.
Alla oleva kohta Jokaisen seuraavan silmukan voi tehdä tämän helposti:
Sub ProtectSheets () Dim ws laskentataulukkona jokaiselle ActiveWorkbookin ws -sivulle. Worksheets ws. Protect Next ws End Sub
Yllä olevassa koodissa olemme määrittäneet ws -muuttujan laskentataulukko -objektiksi. Tämä kertoo VBA: lle, että "ws" tulisi tulkita laskentataulukko -objektina koodissa.
Käytämme nyt jokaiselle lauseketta käydäksemme läpi jokaisen ws: n (joka on laskentataulukko -objekti) aktiivisen työkirjan kaikkien laskentataulukoiden kokoelmassa (ActiveWorkbook.Worksheets).
Huomaa, että toisin kuin muut silmukat, joissa olemme yrittäneet suojata kaikki työkirjan laskentataulukot, meidän ei tarvitse huolehtia siitä, kuinka monta laskentataulukkoa työkirjassa on.
Meidän ei tarvitse laskea näitä silmukan suorittamiseksi. For Jokainen silmukka varmistaa, että kaikki objektit analysoidaan yksitellen.
Esimerkki 2 - Käy läpi kaikki avoimet työkirjat (ja tallenna kaikki)
Jos työskentelet useiden työkirjojen kanssa samanaikaisesti, voi olla hyödyllistä tallentaa kaikki nämä työkirjat kerralla.
Alla oleva VBA -koodi voi tehdä tämän meille:
Sub SaveAllWorkbooks () Dim wb kuin työkirja jokaiselle wb: lle työkirjoissa wb. Tallenna seuraava wb End Sub
Huomaa, että tässä koodissa et saa kehotetta, joka pyytää sinua tallentamaan työkirjan tiettyyn paikkaan (jos tallennat sen ensimmäistä kertaa).
Se tallentaa sen oletuskansioon (se oli tapauksessani "Asiakirjat" -kansio). Tämä koodi toimii parhaiten, kun nämä tiedostot on jo tallennettu ja teet muutoksia ja haluat tallentaa kaikki työkirjat nopeasti.
Esimerkki 3 - Käy läpi kaikki valinnan solut (korosta negatiiviset arvot)
Käyttämällä "Jokaiselle" -silmukkaa voit kiertää kaikki tietyn alueen tai valitun alueen solut.
Tästä voi olla apua, kun haluat analysoida jokaisen solun ja suorittaa sen perusteella toiminnon.
Esimerkiksi alla on koodi, joka käy läpi kaikki valinnan solut ja muuttaa negatiivisten arvojen solujen värin punaiseksi.
Sub HighlightNegativeCells () Dim Cll as Range for each Cll in Selection if Cll.Value <0 then Cll.Interior.Color = vbPunainen loppu jos seuraava Cll End Sub
(Huomaa, että olen käyttänyt Cll: ää solun lyhyenä muuttujanimenä. On suositeltavaa olla käyttämättä objektien nimiä, kuten Sheets tai Range muuttujien niminä)
Yllä olevassa koodissa For For Next-silmukka kulkee valinnan solukokoelman läpi. IF -lausetta käytetään tunnistamaan, onko solun arvo negatiivinen vai ei. Jos se on, solulle annetaan punainen sisäväri, muuten se siirtyy seuraavaan soluun.
Jos sinulla ei ole valintaa ja haluat sen sijaan, että VBA valitsee kaikki sarakkeen täytetyt solut alkaen tietystä solusta (aivan kuten käytämme Control + Vaihto + alanuolinäppäintä kaikkien täytettyjen solujen valitsemiseen), voit käytä alla olevaa koodia:
Sub HighlightNegativeCells () Dim Cll As Range Dim Rng As Range Set Rng = Range ("A1", Range ("A1"). End (xlDown)) For each Cll In Rng If Cll.Value <0 then Cll.Interior.Color = vbPunainen loppu, jos seuraava Cll End Sub
Yllä olevassa esimerkissä ei ole väliä kuinka monta täytettyä solua on. Se alkaa solusta A1 ja analysoi kaikki sarakkeen vierekkäiset täytetyt solut.
Sinun ei myöskään tarvitse valita solua A1. Voit valita minkä tahansa kaukana olevan solun, ja kun koodi suoritetaan, se ottaa silti huomioon kaikki sarakkeen A solut (alkaen A1: stä) ja värittää negatiiviset solut.
"Poistu" -lauseke
Voit käyttää jokaisen seuraavan silmukan Exit For -lauseketta poistuaksesi silmukasta. Tämä tehdään yleensä, jos jokin tietty edellytys täyttyy.
Esimerkiksi esimerkissä 3, kun käymme läpi solusarjan, voi olla tehokkaampaa tarkistaa, onko negatiivisia arvoja vai ei. Jos negatiivisia arvoja ei ole, voimme yksinkertaisesti poistua silmukasta ja säästää jonkin verran VBA -käsittelyaikaa.
Alla on VBA -koodi, joka tekee tämän:
Sub HighlightNegativeCells () Dim Cll as Range for each Cll In Selection If WorksheetFunction.Min (Selection)> = 0 Sitten Exit For If Cll.Value <0 then Cll.Interior.Color = vbPunainen loppu jos seuraava Cll End Sub
Minne laittaa VBA -koodi
Mietitkö, mihin VBA -koodi menee Excel -työkirjassa?
Excelissä on VBA -taustaohjelma, jota kutsutaan VBA -editoriksi. Sinun on kopioitava ja liitettävä koodi VB Editor -moduulin koodi -ikkunaan.
Tässä on seuraavat vaiheet:
- Siirry Kehittäjä -välilehdelle.
- Napsauta Visual Basic -vaihtoehtoa. Tämä avaa VB -editorin taustaohjelmaan.
- Napsauta hiiren kakkospainikkeella mitä tahansa työkirjan objektia VB Editorin Project Explorer -ruudussa, johon haluat lisätä koodin. Jos et näe Project Exploreria, siirry Näytä -välilehteen ja napsauta Project Explorer.
- Siirry Lisää -kohtaan ja napsauta Moduuli. Tämä lisää moduuliobjektin työkirjaasi.
- Kopioi ja liitä koodi moduuli -ikkunaan.