VBA teeb silmuseid - Kuidas kasutada Exceli VBA Do Loopsi?

Lang L: none (table-of-contents)

Exceli VBA Do Loop

VBA Do loop , see on alamprotseduuri sees olev käskude kogum, kus kood töötab teatud arvu kordi, kuni soovitud kriteeriumid on saavutatud või mõni künnis on ületatud, või võib öelda, et kuni nõutavad andmed on saadud.

Kuigi tsükkel töötab loogiliste tulemuste põhjal, töötab see silmus edasi-tagasi, kuni testitingimus on TÕSI. Sel hetkel, kui testtingimus naaseb FALSE, väljub see tsüklist. Silmused on iga programmeerimiskeele süda. Oma artiklites näitame silmuste tähtsust ja nende kodeerimise viise. Selles artiklis näitame teile, kuidas Do Loopi kasutada.

Kuidas kasutada VBA Do Loopi?

Näide # 1 - tingimus aasa lõpus

Oleme näinud silmuse alguses seisukorra testi. Varasemas koodis oleme näinud näidet seerianumbrite sisestamise kohta ja kood oli selline.

Kood:

Sub Do_While_Loop_Nample1 () Dim k As Long k = 1 Do While k <= 10 Lahtrit (k, 1). Väärtus = kk = k + 1 Loop End Sub

Nüüd saate tulemuse nägemiseks käivitada selle koodi käsitsi või kiirklahvi F5 kaudu.

See kood sisestab seerianumbrid vahemikus 1 kuni 10.

Kuid saame ka silmuse lõpus olekut testida. Me peame kasutama sõna Loop taga olevat sõna „while“ ja seisunditesti.

Ainus muudatus on testi rakendamine lõpus, nagu allpool näidatud.

Kood:

Sub Do_While_Loop_Nample1 () Dim k As Long k = 1 Do Cells (k, 1). Väärtus = kk = k + 1 silmus, samas kui k <= 10 End Sub

Nii saame testida ka tsükli lause lõpus olevat tingimust.

Märkus. Kood töötab, seejärel testib see tingimuse, kas minna uuesti tsüklile tagasi või mitte. See tähendab, et see töötab kõigepealt ja proovib siis olukorda hiljem.

Näide # 2 - kokkuvõtte tegemine silmitsi tehes

Oletame, et Exceli lehel on andmed müügi ja kulude kohta. Allpool on komplekt näiv andmetest, mille olen arvutamiseks loonud.

Nüüd peame tulu C tulu saama. Olen juba loonud koodi, mis teeb minu jaoks tööd.

Kood:

Sub Do_While_Loop_Example2 () Dim k As Long Dim LR As Long k = 2 LR = lahtrid (read.Count, 1) .End (xlUp) .Rida Do While k <= LR lahtrid (k, 3) .Väärtus = lahtrid (k , 1) + Rakud (k, 2) k = k + 1 silmuse lõpu alam
LR = lahtrid (read. Loend, 1). Lõpp (xlUp). Rida

Selle koodiga tuvastatakse esimeses veerus viimati kasutatud rida. See muudab koodi dünaamiliseks, kuna andmete lisamise või kustutamise korral reguleerib see minu järjestuse aega tsükli käivitamiseks.

k = 2

Soovime, et arvutus tehtaks teisest lahtrist alates. Nii et k algväärtus on 2.

Tehke, kui k <= LR

Nagu ma ütlesin, leiab LR esimesest veerust viimati kasutatud rea. See tähendab, et silmus töötab, kui k on <= LR väärtus. Sel juhul on mul 10 rida, seega LR = 10.

Silmus kestab seni, kuni k väärtus jõuab 10. Kui summa on möödunud 10 silmusest, peatub see.

Nüüd saate tulemuse nägemiseks käivitada selle koodi otseteeklahviga F5 või käsitsi.

Näide # 3 - väljumisavaldus teenuses Do while Loop

Võime ka silmusest väljuda, kui tingimus on endiselt tõene. Näiteks võtke ka siin ülaltoodud andmed.

Oletame, et te ei soovi täielikku arvutust teha, kuid peate arvutama ainult esimesed 5 kasumi rida ja niipea, kui see jõuab kuuendale reale, soovite tulla ringist välja. Seda saab teha, kui kasutada funktsiooni IF Excelis. Allolev kood sisaldab väljumisavaldust.

Kood:

Sub Do_While_Loop_Example3 () Dim k As Long Dim LR As Long k = 2 LR = Lahtrid (Ridad.Kogus, 1) .End (xlUp). Rida Do While k 6 Siis Exit Do Cells (k, 3). Väärtus = Lahtrid ( k, 1) + rakud (k, 2) k = k + 1 silmuse lõpu alam
"Kui k> 6, siis väljuge Do"

See koodirida käivitab väljumisprotsessi. Silmus töötab seni, kuni k väärtus jõuab väärtuseni 6. Hetk, kui see ületab väärtuse 6, kui tingimus täidab koodi „Exit Do”.

Nüüd saate tulemuse nägemiseks käivitada selle koodi otseteeklahviga F5 või käsitsi.

Asjad, mida meeles pidada

  • Tehke Tsükkel töötab loogiliste tulemuste põhjal ja see töötab silmus edasi-tagasi, kui testi tingimus on TÕSI. Sel hetkel, kui testtingimus naaseb FALSE, väljub see tsüklist.
  • Saame igal ajal silmusest väljuda, kohandades funktsiooni IF abil veel ühte loogilist testi ringi sees.
  • Kui tingimus või test on esitatud tsükli ülaosas, kontrollib see kõigepealt testi ja jätkab edasi ainult siis, kui see on tõsi.
  • Kui tingimus või test esitatakse tsükli lõpus, täidab see kõigepealt tsükli lause sees oleva koodiploki ja testib tulevikus tingimust, et otsustada, kas minna tagasi tsükli uuesti käivitamiseks või mitte.

Huvitavad Artiklid...