VBA Do Loops - Kako uporabljati zanke za Excel VBA Do?

Excel VBA Do Loop

VBA Do zanka je niz navodil znotraj podprocedure, kjer se koda zažene določeno število krat, dokler ni dosežen želeni kriterij ali presežen kateri koli prag ali varno reči, da dokler ne dobite zahtevanih podatkov.

Čeprav zanka deluje na logične rezultate, zanko še naprej izvaja naprej in nazaj, medtem ko je preskusni pogoj TRUE. V trenutku, ko preskusni pogoj vrne FALSE, bo zapustil zanko. Zanke so srce vsakega programskega jezika. V naših člankih dokazujemo pomen zank in načine njihovega kodiranja. V tem članku vam predstavljamo, kako uporabljati Do Loop.

Kako uporabljati VBA Do Loop?

Primer # 1 - Pogoj na koncu zanke

Preskus stanja smo videli na začetku zanke. V prejšnji kodi smo videli primer vstavljanja serijskih številk in koda je bila takšna.

Koda:

Sub Do_While_Loop_Example1 () Dim k as Long k = 1 Do While k <= 10 celic (k, 1) .Value = kk = k + 1 Loop End Sub

Zdaj lahko to kodo zaženete ročno ali s pomočjo bližnjične tipke F5, da si ogledate rezultat.

Ta koda bo vstavila serijske številke od 1 do 10.

Lahko pa tudi preizkusimo stanje na koncu zanke. Na koncu za besedo Loop moramo uporabiti besedo »while« in preizkus stanja.

Edina sprememba je, da preskus uporabite na koncu, kot je prikazano spodaj.

Koda:

Sub Do_While_Loop_Example1 () Dim k as Long k = 1 Do Cells (k, 1) .Value = kk = k + 1 Loop While k <= 10 End Sub

Tako lahko preizkusimo stanje tudi na koncu stavka zanke.

Opomba: Koda se bo zagnala, nato pa preizkusila pogoj, da se še enkrat vrne v zanko ali ne. To pomeni, da se bo najprej zagnal in nato poskusil situacijo pozneje.

2. primer - seštevanje z uporabo Do While Loop

Predpostavimo, da imate v obračunu excel podatke o prodaji in stroških. Spodaj je nabor lažnih podatkov, ki sem jih ustvaril za izračun.

Zdaj moramo v stolpec C. dobiti vrednost dobička. Sem že ustvaril kodo, ki bo zame opravila delo.

Koda:

Sub Do_While_Loop_Example2 () Dim k As Long Dim LR As Long k = 2 LR = Celice (Vrstice. Število, 1). End (xlUp). Vrstica Do While k <= LR Celice (k, 3). Vrednost = Celice (k , 1) + Celice (k, 2) k = k + 1 Loop End Sub
LR = Celice (vrstice. Število, 1). Konec (xlUp). Vrstica

Ta koda bo identificirala zadnjo uporabljeno vrstico v prvem stolpcu. To naredi kodo dinamično, kajti če pride do dodajanja ali brisanja podatkov, bo to prilagodilo moj čas zaporedja za zagon zanke.

k = 2

Želimo, da se izračun izvede od druge celice naprej. Torej je začetna vrednost k 2.

Ali do k <= LR

Kot sem že povedal, bo LR našel zadnjo uporabljeno vrstico v prvem stolpcu. To pomeni, da se bo zanka izvajala, medtem ko je k <= na vrednost LR. V tem primeru imam 10 vrstic, torej LR = 10.

Zanka se bo izvajala, dokler vrednost k ne doseže 10. Ko je količina minila 10 zank, se ustavi.

Zdaj lahko to kodo zaženete s bližnjico F5 ali ročno, da si ogledate rezultat.

Primer # 3 - Izjava o izhodu v Do While Loop

Iz zanke lahko tudi zapustimo, če je pogoj še vedno TRUE. Na primer, tukaj vzemite tudi zgornje podatke.

Predvidevam, da ne želijo narediti popoln izračun, vendar morate le za izračun prvih 5 vrstic dobička, in takoj, ko doseže 6 th vrstico, boste želeli, da pridejo ven iz zanke. To lahko storite z uporabo funkcije IF v Excelu. Spodnja koda vključuje izhodno izjavo.

Koda:

Sub Do_While_Loop_Example3 () Dim k As Long Dim LR As Long k = 2 LR = Celice (Vrstice. Število, 1). Konec (xlUp). Vrstica Medtem k 6 Nato zapustite Do Cells (k, 3). Vrednost = Celice ( k, 1) + Celice (k, 2) k = k + 1 Loop End Sub
"Če je k> 6, potem zapustite"

Ta vrstica kode bo sprožila postopek izstopa. Loop se bo nadaljeval, dokler vrednost k ne doseže 6. V trenutku, ko preseže 6, če bo pogoj izvedel kodo, »Exit Do«

Zdaj lahko to kodo zaženete s bližnjico F5 ali ročno, da si ogledate rezultat.

Stvari, ki si jih je treba zapomniti

  • Ali Zanka deluje na logične rezultate in zanko še naprej izvaja naprej in nazaj, medtem ko je preskusni pogoj TRUE. V trenutku, ko preskusni pogoj vrne FALSE, bo zapustil zanko.
  • Iz zanke lahko kadar koli zapustimo tako, da z uporabo funkcije IF prilagodimo še en logični test znotraj kroga.
  • Če je pogoj ali test na vrhu zanke, bo najprej preveril test in nadaljeval le, če je TRUE.
  • Če je pogoj ali test na koncu zanke, bo najprej izvedel blok kode znotraj stavka zanke, v prihodnosti pa bo preizkusil pogoj, da se bo odločil, ali se bo zanko še enkrat zagnal ali ne.

Zanimive Članki...