Če pišete program VBA in želite isto nalogo izvesti večkrat, lahko to storite z uporabo VBA za zanke. VBA je zaporedni programski jezik. Vsaka vrstica kode se izvaja od zgoraj navzdol, dokler ni več vrstic kode za branje. Če se želite vrniti in opraviti nalogo, morate to narediti s kodo makra. Z zanko dobite rezultate.
For Loop v VBA je ena najpogostejših vrst zanke. Zanka For ima dve obliki: For Next in For Every In Next. Zanka For se običajno uporablja za zaporedno premikanje po seznamu postavk ali številk. Za prekinitev zanke For na kateri koli točki lahko uporabimo izjavo exit. Kajti zanka se bo vrtela, dokler ne izpolni končnega pogoja. Ko je končni pogoj izpolnjen, se bo tok programiranja nadaljeval navzdol v svoji naravni smeri.
Zanka For… Next ima naslednjo sintakso: For counter = start_counter To end_counter 'Naredite nekaj tukaj (vaša koda) Naslednji števec
Pravzaprav ustvarjamo zanko, ki uporablja spremenljivko števec kot 'časovni čuvaj' zanke. Nastavili smo ga na vrednost, ki je enaka start_counter na začetku zanke in jo nato povečajte za 1 med vsako zanko, dokler ne izpolni končnega pogoja. Zanka se bo izvajala do trenutka, ko je vrednost števec postane enaka end_counter. Zanka se zadnjič izvede, ko se zgornji vrednosti ujemata, nato pa se zanka ustavi.
Vse našteto je lahko za nekatere ljudi zmedeno, zato se pripravimo in začnimo učiti For Loop v excelu z nekaj primeri.
- Ustvarite nov delovni zvezek Excel in ga shranite s pripono .xlsm
- Če želite zagnati zaslon urejevalnika Visual Basic, uporabite ALT + F11
- Vstavite nov modul
- Kopirajte spodnjo kodo v standardni modul VB
Zanka 1 (Prikaz številke s sporočilom)
Sub Loop1 () Dim StartNumber As Integer Dim End EndNumber As Integer EndNumber = 5 Za StartNumber = 1 Za EndNumber MsgBox StartNumber & "je" & "Your StartNumber" Naslednji StartNumber End Sub
Koda Pojasnilo:
- Koda VBA mora dodeliti vrednost StartNumber, kjer so EndNumber spremenljivke, ki so kot izhodišče za vašo zanko deklarirane kot cela števila
- Te vrednosti so lahko poljubno število in imamo EndNumber kot 5
- StartNumber se začne ob 1
- Za StartNumber = 1 To EndNumber pomeni, da se bo koda začela od 1 (StartNumber) do 5 (EndNumber)
- MsgBox StartNumber & "is" & "Your StartNumber" bo prikazalo naslednje polje s sporočilom
Zanka2 (vrednosti izpolnitve)
Sub Loop2 () 'Polni celice A1: A56 z vrednostmi X z zanko' --- Komentiraj 'Povečaj vrednost X za 1 v vsaki zanki' --- Komentiraj Dim X kot celo število za obseg X = 1 do 56 ("A "& X) .Vrednost = X Naprej X Konec pod
Koda Pojasnilo:
- X smo dodelili kot celo število
- Za X = 1 do 56; to se bo začelo z 1 in se nadaljevalo do 56 s povečanjem 1 vsakič
- Razpon ("A" & X). Vrednost = X; ta vrstica bo shranila vrednost X in bo prešla v obseg A1 do A56
Zanka 3 (napolnite celice z barvo ozadja)
Sub Loop3 () 'Polni celice B1: B56 s 56 barvami ozadja' --- Komentiraj Dim X kot celo število za obseg X = 1 do 56 ("B" & X). Izberite z izbiro. Notranjost .ColorIndex = X. Vzorec = xlSolid End with Next X End Sub
Koda Pojasnilo:
- X smo dodelili kot celo število
- Za X = 1 do 56 se bo začelo z 1 in nadaljevalo do 56 s povečanjem 1 vsakič
- Razpon ("B" in X). Izberite; ta vrstica bo shranila vrednost X in izbrala celico B1 do B56
- Naslednje 4 vrstice, to je z izbiro.Interior bo izbral notranji barvni indeks in prevzel vrednost iz X tega barvnega indeksa, tako da 1 pripada črni barvi; 2 pripada beli barvi; 3 za rdečo itd
Zanka 4 (Izpolnite vrednosti s korakom 2)
Vrednost Step je privzeto naprej 1, lahko pa jo nastavite na število več kot 1.
Sub Loop4 () 'Vsako drugo celico od C1: C50 napolni z vrednostmi X' --- Komentiraj Dim X kot celo število za X = 1 do 50 Območje 2. koraka ("C" & X). Vrednost = X Naslednji X Konec Sub
Koda Pojasnilo:
- X smo dodelili kot celo število
- Za X = 1 do 50 Korak 2; to se bo začelo z 1 v X do 50 s povečanjem 2 vsakič
- Razpon ("C" & X). Vrednost = X; ta vrstica bo shranila vrednost X in bo prešla v obseg C1 do C50
Zanka 5 (VBA za povratno zanko z navodili STEP)
Ni nujno, da se števec v zanki For premakne le od nizkih do višjih vrednosti; namesto tega lahko zanka For teče nazaj, tj.previsoko na nižje vrednosti.
Čeprav je vrednost koraka privzeto 1, jo je mogoče nastaviti na številko v obratnem vrstnem redu.
Sub Loop5 () 'Polni celice iz D1: D50 z vrednostmi X' --- Komentar 'V tem primeru se X zmanjša za 1' --- Komentar Dim X kot celo število, vrstica kot celo število vrstica = 1 za X = 50 do 0 Korak -1 Razpon ("D" & Vrstica). Vrednost = X Vrstica = Vrstica + 1 Naslednja X Končna podrejena
Koda Pojasnilo:
- X & Row smo dodelili kot celo število
- Vrstica vsebuje vrednost 1
- Za X = 50 do 0 Korak -1; to se bo začelo od 50 z zmanjšanjem za 1 v X do 0
- Razpon ("D" & Vrstica) .Vrednost = X; ta vrstica bo shranila vrednost X in bo prešla v obseg D1 do D50
Zanka 6 (Zapolni vsako drugo celico v obratnem vrstnem redu s STEP-2)
V zgornjem primeru zanke For lahko s postopkom Step in order preverimo, ali zanka For deluje v smeri naprej ali nazaj.
Sub Loop6 () 'Vsako drugo celico iz E1: E100 zapolni z vrednostmi X' --- Komentar 'V tem primeru se X zmanjša za 2' --- Komentar Dim X kot celo število, vrstica kot celo število vrstica = 1 za X = 100 Do 0 Korak -2 Obseg ("E" & Vrstica). Vrednost = X Vrstica = Vrstica + 2 Naslednja X Končana pod
Koda Pojasnilo:
- X & Row smo dodelili kot celo število
- Vrstica vsebuje vrednost 1
- Za X = 100 do 0 Korak -2; to se bo začelo od 100 z zmanjšanjem za 2 v X do 0
- Razpon ("E" & Vrstica). Vrednost = X; ta vrstica bo shranila vrednost X in bo prešla v obseg E1 do E100
Zanka 7 (Za zanko s pogojem IF: napolni celice od posebne celice)
S tem bodo celice iz celice F11 napolnjene z vrednostjo 11, dokler X ne izpolni pogoja IF
Sub Loop7 () 'Začne polniti celice F11: F100 z vrednostmi X' --- Komentar 'To bo izstopilo iz zanke po 50' --- Komentar Dim X kot celo število za obseg X = 11 do 100 ("F" & X) .Vrednost = X Če je X = 50, potem MsgBox ("Adijo") zapustite za konec, če naslednji X konec pod
Koda Pojasnilo:
- X smo dodelili kot celo število
- Za X = 11 do 100; se bo začelo od 11 s povečanjem za 1 v X, dokler pogoj ne bo izpolnjen
- Razpon ("F" in X). Vrednost = X; ta vrstica bo shranila vrednost X in bo prešla v obseg F11, dokler pogoj ne izpolni
- Po vnosu vrednosti 50 v celico F50 se prikaže naslednje polje s sporočilom
Zaključek: Z zgornjimi 7 primeri lahko zanko For uporabimo v našem običajnem ali katerem koli delu za avtomatizacijo.
Če so vam bili naši blogi všeč, jih delite s prijatelji na Facebooku. Prav tako nas lahko spremljate na Twitterju in Facebooku.
Radi bi slišali od vas, nam sporočite, kako lahko izboljšamo, dopolnimo ali inoviramo svoje delo in ga izboljšamo. Pišite nam na spletni strani elektronske pošte