Excel VBA Do Loop
VBA Do loop , tas ir instrukciju kopums apakšprocedūrā, kur kods darbojas noteiktu reižu skaitu, līdz tiek sasniegts vēlamais kritērijs vai tiek pārsniegts kāds slieksnis, vai droši teikt, ka līdz tiek iegūti vajadzīgie dati.
Kaut arī cilpa darbojas pēc loģiskiem rezultātiem, tā turpina darbināt cilpu turp un atpakaļ, kamēr testa nosacījums ir PATIESA. Brīdī, kad testa nosacījums atgriež FALSE, tas izies no cilpas. Cilpas ir jebkuras programmēšanas valodas sirds. Savos rakstos mēs parādām cilpu nozīmi un to kodēšanas veidus. Šajā rakstā mēs parādīsim, kā izmantot Do Loop.

Kā lietot VBA Do Loop?
1. piemērs - nosacījums cikla beigās
Mēs esam redzējuši stāvokļa pārbaudi cikla sākumā. Iepriekšējā kodā mēs esam redzējuši sērijas numuru ievietošanas piemēru, un kods bija tāds.
Kods:
Sub Do_While_Loop_Example1 () Dim k As Long k = 1 Do Kamēr k <= 10 šūnas (k, 1). Vērtība = kk = k + 1 Loop End Sub

Tagad jūs varat palaist šo kodu manuāli vai ar īsinājumtaustiņu F5, lai redzētu rezultātu.
Šis kods ievietos sērijas numurus no 1 līdz 10.

Bet mēs varam arī pārbaudīt stāvokli cilpas beigās. Mums ir jāizmanto vārds “kamēr” un stāvokļa pārbaude beigās pēc vārda Loop.
Vienīgās izmaiņas šeit ir testa piemērošana beigās, kā parādīts zemāk.
Kods:
Sub Do_While_Loop_Example1 () Dim k As Long k = 1 Do Cells (k, 1). Vērtība = kk = k + 1 cilpa, kamēr k <= 10 End Sub

Tāpat mēs varam pārbaudīt nosacījumu arī cikla pārskata beigās.
Piezīme. Kods darbosies, pēc tam tas pārbauda nosacījumu, vai atgriezties ciklā vēl vienu reizi vai nē. Tas nozīmē, ka tas vispirms darbosies un pēc tam vēlāk izmēģinās situāciju.2. piemērs - apkopojums, izmantojot cilni “Do while Loop”
Pieņemsim, ka jūsu Excel lapā ir dati par pārdošanu un izmaksām. Zemāk ir manekena datu kopa, kuru esmu izveidojis aprēķinam.

Tagad mums jāiegūst peļņas vērtība C slejā. Es jau esmu izveidojis kodu, kas man darīs darbu.
Kods:
Sub Do_While_Loop_Example2 () Dim k As Long Dim LR As Long k = 2 LR = Cells (Rows.Count, 1). End (xlUp). Rindas Do Kaut k <= LR šūnas (k, 3). Vērtība = Cells (k , 1) + Šūnas (k, 2) k = k + 1 Loop End Sub

LR = Cells (Rows.Count, 1). Beigas (xlUp). Rinda
Šis kods identificēs pēdējo izmantoto rindu pirmajā kolonnā. Tas padara kodu dinamisku, jo, ja dati tiek papildināti vai dzēsti, tas pielāgos manu secības laiku, lai palaistu cilpu.
k = 2
Mēs vēlamies, lai aprēķins tiktu veikts, sākot no otrās šūnas. Tātad k sākotnējā vērtība ir 2.
Dariet, kamēr k <= LR
Kā jau teicu, LR pirmajā slejā atradīs pēdējo izmantoto rindu. Tas nozīmē, ka cilpa darbosies, kamēr k ir <= līdz LR vērtībai. Šajā gadījumā man ir 10 rindas, tātad LR = 10.
Cilpa darbosies, līdz k vērtība sasniegs 10. Kad summa ir izturējusi 10 cilpas, tā apstāsies.
Tagad jūs varat palaist šo kodu, izmantojot īsinājumtaustiņu F5, vai manuāli, lai redzētu rezultātu.

3. piemērs - izejas paziņojums programmā Do while Loop
Mēs varam arī iziet no cilpas, kamēr nosacījums joprojām ir PATIESA. Piemēram, ņemiet iepriekš minētos datus arī šeit.

Pieņemsim, jūs nevēlaties to darīt pilnu aprēķinu, bet jums ir tikai nepieciešams, lai aprēķinātu pirmās 5 rindas peļņu, un tiklīdz tas sasniedz 6 th rindu, jūs vēlaties nākt ārā no cilpas. To var izdarīt, izmantojot Excel funkciju IF. Šis kods ietver izejas paziņojumu.
Kods:
Sub Do_While_Loop_Example3 () Dim k As Long Dim LR As Long k = 2 LR = Cells (Rows.Count, 1) .End (xlUp). Rindas Do While k 6 Tad iziet Do Cells (k, 3). Vērtība = Cells ( k, 1) + šūnas (k, 2) k = k + 1 cilpas beigu apakšdaļa

“Ja k> 6, tad iziet no došanas”
Šī koda rinda sāks izejas procesu. Loop turpinās darboties, līdz k vērtība sasniegs 6. Brīdī, kad tā pārsniedz 6, Ja nosacījums izpildīs kodu “Exit Do”.
Tagad jūs varat palaist šo kodu, izmantojot īsinājumtaustiņu F5, vai manuāli, lai redzētu rezultātu.

Atceramās lietas
- Darīt Cilpa darbojas pēc loģiskiem rezultātiem, un tā turpina darbināt cilpu turp un atpakaļ, kamēr testa nosacījums ir PATIESA. Brīdī, kad testa nosacījums atgriež FALSE, tas izies no cilpas.
- Mēs varam iziet no cilpas jebkurā brīdī, pielāgojot vēl vienu loģisku pārbaudi apļa iekšpusē, izmantojot IF funkciju.
- Ja nosacījums vai tests tiek piegādāts cilpas augšdaļā, tas vispirms pārbauda testu un turpinās tālāk tikai tad, ja tas ir PATIESA.
- Ja nosacījums vai tests tiek piegādāts cikla beigās, tas vispirms izpildīs koda bloku cikla paziņojumā, un nākotnē tas pārbaudīs nosacījumu, lai izlemtu, vai atgriezties, lai palaistu cilpu vēl vienu reizi vai nē.