Kui kirjutate VBA programmi ja soovite sama ülesannet mitu korda täita, saate seda teha, kasutades silmuste jaoks VBA. VBA on järjestikune programmeerimiskeel. Iga koodirida täidetakse ülevalt alla, kuni pole enam loetavaid koodiridu. Kui soovite tagasi minna ja ülesannet täita, peate sundima makrokoodi abil. Loopi abil saate tulemusi.
VBA for Loop on üks levinumaid silmuste tüüpe. Lingil For on kaks vormi: For Next ja For For In Next. Silmust For kasutatakse tavaliselt üksuste või numbrite loendis järjestikuseks liikumiseks. Ahela For lõpetamiseks mis tahes punktis saame kasutada väljundlauset. Loop käib ringi ja ringi, kuni see vastab lõpptingimusele. Kui lõpptingimus on täidetud, jätkub programmeerimisvoog oma loomulikus suunas allapoole.
Tsükli For… Next jaoks on järgmine süntaks: For counter = start_counter To end_counter 'Tehke midagi siin (teie kood) Järgmine loendur
Tegelikult loome tsüklit, mis kasutab muutujat loendur silmuse „ajahoidjana”. Seadsime selle väärtusele, mis on võrdne algus_loendur silmuse alguses ja seejärel suurendage seda iga silmuse jooksul 1 võrra, kuni see vastab lõpptingimusele. Tsükkel kestab kuni väärtus väärtus loendur muutub võrdseks lõpp_loendur. Tsükkel käivitub viimast korda, kui mõlemad ülaltoodud väärtused ühtivad ja seejärel tsükkel peatub.
Kõik ülaltoodu võib mõne inimese jaoks segadust tekitada, nii et alustame ja alustame For Loopi õppimist Excelis, kasutades vaid mõnda näidet.
- Looge uus Exceli töövihik ja salvestage see laiendiga .xlsm
- Visual Basic redaktori ekraani käivitamiseks kasutage klahve ALT + F11
- Sisestage uus moodul
- Kopeerige allolev kood VB standardmoodulisse
Silmus 1 (numbri kuvamine koos sõnumikastiga)
Alasilmus1 () Dim StartNumber täisarvuna Dim EndNumber täisarvuna EndNumber = 5 For StartNumber = 1 to EndNumber MsgBox StartNumber & "is" & "Your StartNumber" Next StartNumber End Sub
Koodi selgitus:
- VBA -kood nõuab, et määraksite väärtuse StartNumber, kus EndNumber on muutujad, mis on teie silmuse alguspunktiks deklareeritud täisarvudena
- Need väärtused võivad olla suvalised ja meil on EndNumber 5
- StartNumber käivitatakse kell 1
- StartNumber = 1 kuni EndNumber tähendab, et kood algab 1 -st (StartNumber) kuni 5 (EndNumber)
- MsgBox StartNumber & "on" & "Teie StartNumber" kuvab järgmise teate
Loop2 (täitmisväärtused)
Alamring 2 () 'Täidab lahtrid A1: A56 X väärtustega silmuste abil' --- Kommentaar 'Suurendage X väärtust 1 võrra igas silmus' --- Kommentaar Dim X täisarvuna X = 1 kuni 56 Vahemik ("A "& X) .Väärtus = X Järgmine X Lõpp Alam
Koodi selgitus:
- Oleme määranud X täisarvuks
- X = 1 kuni 56; see algab ühega ja jätkub kuni 56, suurendades iga kord 1
- Vahemik ("A" & X) .Väärtus = X; see rida salvestab X väärtuse ja läheb vahemikku A1 kuni A56
Loop3 (täitke lahtrid taustavärviga)
Sub Loop3 () 'Täidab lahtrid B1: B56 56 taustavärviga' --- Kommentaar Dim X täisarvuna X = 1 kuni 56 vahemiku ("B" ja X) jaoks. Valige valikuga.Interior .ColorIndex = X .Pattern = xlSolid End koos järgmise X End Sub
Koodi selgitus:
- Oleme määranud X täisarvuks
- X = 1 kuni 56 algab 1 -ga ja jätkub kuni 56 -ni, suurendades iga kord 1 -ga
- Vahemik ("B" ja X). Vali; see rida salvestab X väärtuse ja valib lahtri B1 kuni B56
- Järgmised 4 rida, st valikuga Selection.Interior valib interjööri värviindeksi ja võtab selle värviindeksi X väärtuse selliselt, et 1 kuulub mustale värvile; 2 kuulub valge värvi juurde; 3 punase jaoks jne
Loop 4 (täitke väärtused 2 sammuga)
Vaikimisi on sammu väärtus 1 edasi, kuid selle saab seada arvule üle 1.
Sub Loop4 () 'Täidab iga teise lahtri C1: C50 väärtustega X' --- Kommentaar Dim X täisarvuna X = 1 kuni 50 2. sammu vahemik ("C" ja X). Väärtus = X Järgmine X End Sub
Koodi selgitus:
- Oleme määranud X täisarvuks
- X = 1 kuni 50 Etapp 2; see algab ühest X -st kuni 50 -ni, suurendades iga kord 2 -ga
- Vahemik ("C" & X) .Väärtus = X; see rida salvestab X väärtuse ja läheb vahemikku C1 kuni C50
Loop 5 (VBA For Loop in Reverse with STEP Instruction)
Pole vaja, et loendi For loendur liiguks ainult madalatelt väärtustelt kõrgemale; Selle asemel võib tsükkel joosta tagurpidi, s.t. kõrgelt madalamale.
Kuigi sammväärtus on vaikimisi edasi 1, saab selle seada vastupidiseks.
Alamring 5 () 'Täidab lahtrid D1: D50 väärtustega X' --- Kommentaar 'Sel juhul väheneb X 1' võrra --- Kommentaar Dim X täisarvuna, rida täisarvuna rida = 1 X = 50 kuni 0 Samm -1 Vahemik ("D" ja rida) .Väärtus = X rida = rida + 1 Järgmine X lõppalam
Koodi selgitus:
- Oleme määranud X & Row täisarvuna
- Rida sisaldab väärtust 1
- X = 50 kuni 0 Etapp -1; see algab 50 -st, vähendades 1 X -ga 0 -ni
- Vahemik ("D" & rida) .Väärtus = X; see rida salvestab X väärtuse ja läheb vahemikku D1 kuni D50
Loop 6 (täidab tagurpidi iga teise lahtri STEP-2-ga)
Ülaltoodud näites Ahela saame kasutada sammu ja järjekorda, et näha, kas silmus For töötab edasi või tagasi.
Alamring 6 () 'Täidab iga teise lahtri E1: E100 väärtustega X' --- Kommentaar 'Sel juhul väheneb X 2' võrra --- Kommentaar Dim X täisarvuna, rida täisarvuna rida = 1 X = 100 korral Kuni 0 2. samm Vahemik ("E" ja rida). Väärtus = X rida = rida + 2 järgmine X lõppalam
Koodi selgitus:
- Oleme määranud X & Row täisarvuna
- Rida sisaldab väärtust 1
- X = 100 kuni 0 Etapp -2; see algab 100 -st, vähendades 2 x -ga 0 -ni
- Vahemik ("E" ja rida) .Väärtus = X; see rida salvestab X väärtuse ja läheb vahemikku E1 kuni E100
Silmus 7 (IF -tingimusega silmus: täidab lahtrid, alustades konkreetsest lahtrist)
See täidab lahtri F11 lahtrid väärtusega 11 kuni X vastab IF tingimusele
Alamring 7 () 'Alustab lahtrite F11: F100 täitmist väärtustega X' --- Kommentaar 'See väljub tsüklist pärast 50' --- Kommentaar Dim X täisarvuna X = 11 kuni 100 Vahemik ("F") & X) .Väärtus = X Kui X = 50, siis MsgBox ("Bye Bye") Välju lõpuni, kui järgmine X End Sub
Koodi selgitus:
- Oleme määranud X täisarvuks
- X = 11 kuni 100; algab 11 -st, suurendades 1 -ga X -ni, kuni tingimus on täidetud
- Vahemik ("F" & X) .Väärtus = X; see rida salvestab X väärtuse ja läheb vahemikku F11, kuni tingimus on täidetud
- Pärast väärtuse 50 sisestamist lahtrisse F50 kuvatakse järgmine sõnumikast
Järeldus: Ülaltoodud 7 näite abil saame rakendada silmust oma tavalises või mis tahes automaatikaosas.
Kui teile meeldisid meie ajaveebid, jagage seda oma sõpradega Facebookis. Samuti saate meid jälgida Twitteris ja Facebookis.
Tahaksime sinust kuulda, andke meile teada, kuidas saaksime oma tööd täiustada, täiendada või uuendada ning muuta see teie jaoks paremaks. Kirjuta meile meilisaidile