„Excel VBA Do Loop“
„VBA Do loop“ - tai instrukcijų rinkinys, esantis antrinėje procedūroje, kai kodas paleidžiamas tam tikrą skaičių kartų, kol pasiekiamas norimas kriterijus arba viršijama kokia nors riba, arba galima drąsiai sakyti, kol bus gauti reikalingi duomenys.
Nors ciklas veikia pagal loginius rezultatus, jis vis paleidžia kilpą pirmyn ir atgal, o bandymo sąlyga yra TIESA. Tą akimirką, kai bandymo sąlyga pateikia FALSE, ji išeis iš ciklo. Kilpos yra bet kurios programavimo kalbos širdis. Savo straipsniuose mes parodome kilpų svarbą ir jų kodavimo būdus. Šiame straipsnyje mes parodome, kaip naudoti „Do Loop“.

Kaip naudotis VBA Do Loop?
1 pavyzdys - sąlyga ciklo pabaigoje
Mes matėme būklės testą ciklo pradžioje. Ankstesniame kode matėme serijos numerių įterpimo pavyzdį, ir kodas buvo toks.
Kodas:
Sub Do_While_Loop_Example1 () Dim k As Long k = 1 Do Nors k <= 10 langelių (k, 1). Vertė = kk = k + 1 ciklo pabaigos sub

Dabar galite paleisti šį kodą rankiniu būdu arba naudodamiesi sparčiuoju klavišu F5, kad pamatytumėte rezultatą.
Šis kodas įrašys serijos numerius nuo 1 iki 10.

Bet mes taip pat galime patikrinti būklę ciklo pabaigoje. Mes turime naudoti žodį „o“ ir būsenos testą pabaigoje po žodžio „Loop“.
Vienintelis pakeitimas yra bandymo taikymas pabaigoje, kaip parodyta žemiau.
Kodas:
Sub Do_While_Loop_Example1 () Dim k As Long k = 1 Do Cells (k, 1). Vertė = kk = k + 1 kilpa, o k <= 10 End Sub

Taip galime išbandyti sąlygą ir ciklo sakinio pabaigoje.
Pastaba: Kodas bus paleistas, tada jis patikrina sąlygą grįžti prie ciklo dar kartą. Tai reiškia, kad jis paleis pirmiausia ir vėliau išmėgins situaciją.2 pavyzdys - apibendrinimas naudojant „Do while Loop“
Tarkime, kad „Excel“ lape turite duomenų apie pardavimus ir išlaidas. Žemiau pateikiamas manekenių duomenų rinkinys, kurį sukūriau apskaičiavimui.

Dabar mes turime gauti pelno vertę C stulpelyje. Aš jau sukūriau kodą, kuris man atliks darbą.
Kodas:
Sub Do_While_Loop_Example2 () Dim k As Long Dim LR As Long k = 2 LR = Cells (Rows.Count, 1). End (xlUp). Eilutės atlikimas, kol k <= LR ląstelės (k, 3). Vertė = Cells (k , 1) + Ląstelės (k, 2) k = k + 1 Loop End Sub

LR = Cells (Rows.Count, 1). End (xlUp). Eilutė
Šis kodas identifikuos paskutinį kartą naudotą eilutę pirmame stulpelyje. Tai daro kodą dinamišką, nes jei bus kokių nors duomenų papildymų ar ištrynimų, tai pakoreguos mano sekos laiką, kad būtų paleista kilpa.
k = 2
Norime, kad skaičiavimas būtų atliekamas nuo antrojo langelio. Taigi k pradinė vertė yra 2.
Darykite, kol k <= LR
Kaip sakiau, LR pirmame stulpelyje ras paskutinę naudotą eilutę. Tai reiškia, kad kilpa veiks, o k yra <= LR reikšmė. Šiuo atveju turiu 10 eilučių, taigi LR = 10.
Ciklas tęsis, kol k vertė pasieks 10. Kai suma praeis 10 kilpų, ji sustos.
Dabar galite paleisti šį kodą naudodami spartųjį klavišą F5 arba rankiniu būdu, kad pamatytumėte rezultatą.

3 pavyzdys - išeiti iš „Do while Loop“
Mes taip pat galime išeiti iš ciklo, kol sąlyga vis dar yra tikra. Pavyzdžiui, čia taip pat paimkite aukščiau nurodytus duomenis.

Tarkime, kad nenorite atlikti viso skaičiavimo, bet jums reikia tik apskaičiuoti pirmąsias 5 pelno eilutes ir, kai tik jis pasieks 6 -ąją eilę, norite išeiti iš ciklo. Tai galima padaryti naudojant IF funkciją programoje „Excel“. Žemiau pateiktas kodas apima išėjimo pareiškimą.
Kodas:
Sub Do_While_Loop_Example3 () Dim k As Long Dim LR As Long k = 2 LR = Cells (Rows.Count, 1). End (xlUp). Eilutė Do Nors k 6, tada išeikite Do Cells (k, 3). Vertė = Cells ( k, 1) + Ląstelės (k, 2) k = k + 1 ciklo pabaigos sub

„Jei k> 6, tada„ Exit Do “
Ši kodo eilutė inicijuos išėjimo procesą. Ciklas tęsis tol, kol k reikšmė pasieks 6. Akimirka, kai ji viršija 6, jei sąlyga įvykdys kodą „Exit Do“.
Dabar galite paleisti šį kodą naudodami spartųjį klavišą F5 arba rankiniu būdu, kad pamatytumėte rezultatą.

Ką reikia atsiminti
- Daryk. Ciklas veikia pagal loginius rezultatus ir vis tęsia kilpą pirmyn ir atgal, kol bandymo sąlyga yra TIESA. Tą akimirką, kai bandymo sąlyga pateikia FALSE, ji išeis iš ciklo.
- Mes galime bet kuriuo metu išeiti iš kilpos, pakoreguodami dar vieną loginį testą apskritimo viduje, naudodami funkciją IF.
- Jei sąlyga ar testas pateikiami ciklo viršuje, jis pirmiausia patikrins testą ir toliau eis tik tuo atveju, jei jis yra TIESA.
- Jei sąlyga ar testas pateikiami ciklo pabaigoje, jis pirmiausia įvykdys kodo bloką ciklo sakinyje, o ateityje patikrins sąlygą, kad nuspręstų, ar grįžti dar kartą paleisti kilpą. arba ne.