VBA Dok je petlja
VBA Iako je petlja važan i moćan koncept koji ste mogli vidjeti u većini programskih jezika. Ako savladate ovaj koncept pod VBA, moći ćete pripremiti moćne skripte koje rade s podacima proračunskih tablica na potpuno različite i praktične načine. U ovom se članku pripremite za istraživanje svijeta različitih dok petlje zajedno s više primjera dolaze za vašu pomoć.
Svrha petlje Iako je ponoviti određeni blok izjava pod uvjetom da je ispunjen uvjet. Preciznije, dok petlja ponavlja odgovarajuću izjavu, a uvjet je True. Jednom kada uvjet postane lažan (ne ispunjava), petlja se prekida.
U Microsoft Excel VBA u osnovi postoje dvije vrste petlje:
- VBA Dok-Wend petlja
- VBA petlja do-dok
VBA while-Wend Petlja postoji da bi kôd bio kompatibilan sa starijom verzijom kodova. VBA Do-Iako je ažurirana verzija while petlje koja je fleksibilnija i strukturiranija u odnosu na prethodnu i preporučuje je za upotrebu u Microsoftovoj zajednici.
Za svaki slučaj, pitate se što znači Wend, to je kratki oblik Dok Kraj i djeluje kao isti.
Primjeri VBA Dok se petlja
Zaronimo duboko u korak po korak vodič različitih vrsta VBA Dok se petlje.
Možete preuzeti ovaj VBA predložak dok petlja Excel ovdje - VBA predložak dok petlja ExcelPrimjer 1
VBA Dok-Wend petlja
Sintaksa:
Uzmimo primjer kako bismo to vidjeli na bolji način.
- Definirajte podprocedura za stvaranje makronaredbe pod novim modulom.
Kodirati:
Sub DokEx1 () Kraj Sub
- Postavite dvije varijable Broj na jedan i Zbir na Nulu.
Kodirati:
Sub DokEx1 () Broj = 1 Zbroj = 0 Kraj Sub
- Postavite neko vrijeme za varijablu Broj.
Kodirati:
Sub DokEx1 () Broj = 1 Zbroj = 0 Dok Broj <= 10 Kraj Sub
- Dodajte naredbe koje će se izvršiti za to stanje dok je uvjet.
Kodirati:
Sub Dok je Exx1 () broj = 1 zbroj = 0 dok je broj <= 10 zbroj = zbroj + broj broj = broj + 1 krajnji sub
- Dodajte Debug.Print Sumu tako da se zbroj prvih 10 prirodnih brojeva može ispisati jedan po jedan u neposrednom prozoru.
Kodirati:
Sub DokEx1 () Broj = 1 Zbroj = 0 Dok je broj <= 10 Zbroj = Zbroj + Broj Broj = Broj + 1 Debug.Pisak Zbroj Kraj Sub
- Konačno, završavajte dok petlja Wend ima izraz.
Kodirati:
Sub Dok je Exx1 () broj = 1 zbroj = 0 dok je broj <= 10 zbroj = zbroj + broj broj = broj + 1 debug. Ispis zbroja krajnjeg sub
- Pritisnite F5 ili Run Button da biste pokrenuli ovaj kod i pogledali izlaz.
U ovom je kodu varijabla zbroja postavljena na nulu. Dakle, svaki put kada se broj poveća za 1 dok ne dosegne 10 (koristeći while petlju), varijabla zbroja dodaje prethodni zbroj s trenutnim brojem i prikazuje ga u retku neposrednog prozora po retku ili postupnom zbroju koji možete reći.
Primjer 2
VBA petlja do-dok
Petlja dok ne radi kada se provjeri stanje prije pokretanja petlje
Postoje dva načina na koji se izvršava petlja.
- Možete dodati uvjet prije nego što se petlja pokrene (To je isto kao petlja Dok-Wend). Ovdje ne bi bilo ponavljanja petlje ako se stanje prvi put pokvari.
- Možete dodati uvjet na posljednjoj petlji radi provjere. U ovom će slučaju postojati barem jedna ponavljanje petlje prije nego što uvjet ne uspije.
Sintaksa:
Uzmimo jedan primjer da stvari budu jasnije.
- Umetnite novi modul i definirajte novi podpostupak za definiranje makronaredbe.
Kodirati:
Sub DokEx2 () Kraj Sub
- Definirajte novu varijablu I kao cijeli broj. I započnite njegovu vrijednost na 1.
Kodirati:
Sub DokEx2 () Dim i Dim Integer i = 1 Krajnji Sub
- Upotrijebite Do-while za dodavanje uvjeta na početku petlje.
Kodirati:
Sub DokEx2 () Dim i Dim Integer i = 1 Učini dok je <= 10 Kraj Sub
- Dodajte izjave koje će se izvršiti sve dok je uvjet istinit. Dodajte donji redak koda u makronaredbu.
Kodirati:
Sub DokEx2 () Dim i Dim Integer i = 1 Učini dok je <= 10 ćelija (i, 1) .Value = i * i Kraj Sub
Ova izjava omogućuje da prvi redak prvog stupca pohranjuje kvadratnu vrijednost brojeva.
- Dodajte još jednu izjavu koja omogućava povećanje u i po 1 pri svakoj iteraciji petlje.
Kodirati:
Sub DokEx2 () Dim i Dim Integer i = 1 Učini dok je <= 10 ćelija (i, 1) .Value = i * ii = i + 1 petlja Kraj Sub
- Dovršite ovu petlju dodavanjem izjave Loop na kraju vašeg koda.
Pogledajmo rješenje ovog koda:
Za vrijednosti i od 1 (prvotno i = 1) do 10, izračunava, i * i (tj. Vrijednost kvadrata za svaku cjelobrojnu vrijednost i) i unosi je u retke 1 do 10 stupca 1 (tj. Stupac A), respektivno, Izlaz nije ništa drugo do vrijednosti kvadrata od 1 do 10.
- Pokrenite ovaj kod pritiskom na tipku F5 ili Run i pogledajte izlaz.
Možete vidjeti kvadratne vrijednosti prirodnih brojeva 1 do 10 koje se pohranjuju u svakoj ćeliji zasebno u stupcu A.
Primjer 3
Petlja dok traje dok se na kraju petlje provjeri uvjet
Sintaksa:
Pogledajmo primjer da se petlja vidi na bolji način.
- Umetnite novi modul i definirajte novi podpostupak za pohranu makronaredbe.
Kodirati:
Sub DokEx3 () Kraj Sub
- Definirajte novi cijeli broj i isto kao u prethodnom primjeru i dodijelite mu početnu vrijednost.
Kodirati:
Sub DokEx3 () Dim i Dim Integer i = 1 Krajnji Sub
- Upotrijebite uvjet Do da biste dodali da se izjave izvršavaju dok god je uvjet istinit.
Kodirati:
Sub DokEx3 () Dim i Dim Integer i = 1 Do ćelije (i, 2) .Value = i * ii = i + 1 Kraj Sub
Preporučuje se korištenje bijelog prostora (tipka Tab) kao uvlačenje prikazano u gornjem kôdu, što omogućava kôdu nesmetano pokretanje i također definira dobar oblik strukture koda.
- Upotrijebite petlju dok dodate uvjet koji će se provjeriti za svaku izjavu koja treba izvršiti.
Kodirati:
Sub DokEx3 () Dim i Dim Integer i = 1 Do ćelije (i, 2) .Value = i * ii = i + 1 petlja, a i <= 10 Kraj Sub
- Pokrenite ovaj kôd pritiskom na tipku F5 ili Run ručno i pogledajte izlaz.
Vidjet ćete izlaz kao što je prikazano na slici iznad.
Kako djeluje ovaj kodek u rezervnom dijelu?
Sustav množi vrijednost i (počevši od 1) do sebe i pohranjuje u drugi stupac (ćelije (i, 2)) za svaki red, jednu po jednu. Kôd se zaustavlja izvršiti čim vrijednost varijable i dosegne 10. Izlaz može biti isti što logično znači da oba koda rade kao ista. Ali glavna razlika je u sastavljanju koda. U posljednjem primjeru stanje je već bilo i sustav je znao do kojeg broja mora ići. Međutim, u ovom kodu sustav nije svjestan stanja u trenutku izvršenja izjava i pokreće iteraciju jednu po jednu. Sve dok je uvjet lažan, kod se prestao izvršavati.
Stvari koje treba zapamtiti o VBA Dok je petlja
- Petlja za dok je Wend zastarjela i je li samo kompatibilna sa starijim verzijama kodova. Umjesto toga, trebali biste koristiti petlju Do-while.
- Do-while petlja je fleksibilnija i dobro strukturirana u usporedbi s petljom dok je Wend.
- Petlja do-while može se koristiti na dva načina, gdje u jednom slučaju prvo možete dodati uvjet koji se provjerava, a zatim dodati izjave koje zadovoljavaju uvjet. Na drugi način, možete najprije dodati izjave, a kasnije dodati uvjet koji treba provjeriti.
- Odrezivanja se preporuča koristiti u petlji kako bi kôd mogao biti dinamičniji i lakši za čitanje.
Preporučeni članci
Ovo je Vodič za VBA učiniti dok petlja. Ovdje smo raspravljali o tome kako koristiti Excel VBA Do while Loop zajedno s nekoliko praktičnih primjera i preuzeti Excel predložak. Možete i pregledati naše druge predložene članke -
- Kako se u programu Excel koristi FIND funkcija?
- Kako se koristi VBA TRIM funkcija?
- VBA nizovi | Kompletan vodič
- Kako se koristi slučaj VBA Select?