VBA Kuigi silmus

VBA Kuigi silmus on oluline ja võimas kontseptsioon, mida võisite näha enamikus programmeerimiskeeltes. Kui valdate selle kontseptsiooni VBA-s, saate valmistada võimsaid skripte, mis töötavad arvutustabeli andmetega täiesti erinevatel ja mugavatel viisidel. Selles artiklis olge valmis uurima erinevate silmuste maailma ja koos teie jaoks mitme näitega.

Kuigi silmuse eesmärk on korrata teatavat lauseplokki tingimusel, et tingimus on täidetud. Täpsemalt, kui silmus kordab vastavat väidet, kui tingimus on tõene. Kui tingimus muutub valeks (ei vasta), lõpeb silmus ise.

Microsoft Excel VBA-s on põhimõtteliselt kahte tüüpi ahelsilme:

  • VBA Kuigi Wendi silmus
  • VBA tegemisahel

VBA While-Wend Loop on olemas selleks, et muuta kood ühilduvaks koodide vanema versiooniga. VBA Do-Kuigi on ajakohastatud silmuse värskendatud versioon, mis on varasemaga võrreldes paindlikum ja struktureeritum ning mida soovitab kasutada Microsofti kogukond.

Igaks juhuks mõtlete, mida Wend tähendab, see on Kuigi Endi lühivorm ja töötab samamoodi.

Näited VBA Kuigi silmusest

Vaatleme sügavuti eri tüüpi VBA Kuigi silmuseid samm-sammult.

Selle VBA Kuigi Loopi Exceli malli saate alla laadida siit - VBA Kuigi Loopi Exceli mall

Näide nr 1

VBA Kuigi Wendi silmus

Süntaks:

Võtame näite, et seda paremini näha.

  • Uue mooduli alla makro loomiseks määratlege alamprotseduur.

Kood:

 Sub KuigiEx1 () lõpetab alammenüü 

  • Seadke kaks muutujat Number ühele ja Summa nullile.

Kood:

 Sub KuigiEx1 () Arv = 1 Summa = 0 Lõpp Sub 

  • Seadke muutuja arv mingiks ajaks tingimuseks.

Kood:

 Sub KuigiEx1 () arv = 1 summa = 0, kui arv <= 10, lõpp alam 

  • Lisage selle aja tingimuse jaoks täidetavad avaldused.

Kood:

 Sub KuigiEx1 () arv = 1 summa = 0 kui arv <= 10 summa = summa + arv arv = arv + 1 lõpp alamhulk 

  • Lisage Debug.Print Sum, nii et esimese 10 naturaalarvu summa saab kohese akna ükshaaval välja printida.

Kood:

 Sub KuigiEx1 () arv = 1 summa = 0, samas kui arv <= 10 summa = summa + summa arv = arv + 1 silumine.summ summa lõpp alam 

  • Lõpuks lõpetage Kuigi silmus Wendi avaldusega.

Kood:

 Sub WhileEx1 () arv = 1 summa = 0, samas kui arv <= 10 summa = summa + summa arv = arv + 1 silumine.Printerda summa Wend lõpp alamkaust 

  • Selle koodi käivitamiseks ja väljundi nägemiseks klõpsake nuppu F5 või Käivita nuppu.

Selles koodis seatakse muutuja summa nulliks. Nii et iga kord, kui arvu suurendatakse ühe võrra, kuni see jõuab 10-ni (kasutades loop-i), lisab summa muutuja eelmise numbri praeguse numbriga ja kuvab selle kohese akna all ridade kaupa või astmelise summa järgi, mida võite öelda.

Näide 2

VBA tegemisahel

Do-while silmus, kui enne silmuse algust kontrollitakse seisukorda

Loopi täitmiseks on kaks viisi.

  • Tingimuse saate lisada enne kui silmus käivitub (see on sama kui Kuigi-Vendi silmus). Siin ei toimuks ahela iteratsiooni, kui tingimus esimest korda ebaõnnestub.
  • Tingimuse saate lisada kontrollimiseks ahela viimases osas. Sel juhul toimub enne seisundi ebaõnnestumist vähemalt üks ahela iteratsioon.

Süntaks:

Võtame ühe näite, et asi selgem oleks.

  • Sisestage uus moodul ja määrake makro määratlemiseks uus alaprotseduur.

Kood:

 Sub KuigiEx () lõpeb alam 

  • Määratlege uus muutuja I täisarvuna. Ja algatage selle väärtus 1-ni.

Kood:

 Sub KuigiEx () Dim i Dim Integer i = 1 Lõpp Sub 

  • Tingimuse lisamiseks silmuse algusesse kasutage käsku Do-Kuigi.

Kood:

 Sub KuigiEx2 () Dim i Dim Integer i = 1 Tee siis, kui i <= 10 Lõpeta Sub 

  • Lisage avaldused, mida täidetakse seni, kuni tingimus on tõene. Lisage makrole allolev koodirida.

Kood:

 Sub KuigiEx2 () Dim i Dim Integer i = 1 Tehke Kui i <= 10 lahtrit (i, 1) .Väärtus = i * i End Sub 

See avaldus võimaldab esimese veeru i-ndal real salvestada numbrite ruutväärtuse.

  • Lisage veel üks lause, mis võimaldab i suurendamist 1-ga iga silmuse iteratsiooni korral.

Kood:

 Sub KuigiEx2 () Dim i Dim Integer i = 1 Tehke Kui i <= 10 lahtrit (i, 1) .Väärtus = i * ii = i + 1 Loop End Sub 

  • Lisage see silmus, lisades oma koodi lõppu avalduse Loop.

Vaatame selle koodi lahendust:

I väärtuste jaoks vahemikus 1 (i = 1 algselt) kuni 10 arvutab ta i * i (st iga i täisarvu ruutväärtuse) ja sisestab selle vastavalt 1. veeru (st veeru A) ridadesse 1–10. . Väljund on midagi muud kui täisarvude 1–10 ruutväärtused.

  • Käivitage see kood, vajutades F5 või nuppu Käivita ja vaadake väljundit.

Näete naturaalarvude ruutude väärtusi 1 kuni 10, mis on salvestatud igas veerus eraldi A veerust.

Näide 3

Ajasõnumi tegemise aeg, kui tingimust kontrollitakse silmuse lõpus

Süntaks:

Vaatame näidet, et silmuseid paremini näha.

  • Sisestage uus moodul ja määrake makro salvestamiseks uus alamprotseduur.

Kood:

 Sub KuigiEx3 () lõpetab alammenüü 

  • Määratlege uus täisarv i, nagu eelmises näites, ja määrake sellele algväärtus.

Kood:

 Sub KuigiEx3 () Dim i Dim Integer i = 1 End Sub 

  • Kasutage tingimust Do, et lisada täidetavad avaldused, kui tingimus on tõene.

Kood:

 Sub KuigiEx3 () Dim i Dim Integer i = 1 Kas lahtrid (i, 2) .Väärtus = i * ii = i + 1 End Sub 

Ülaltoodud koodis on taandena soovitatav kasutada tühikut (Tab-klahvi), mis võimaldab koodil sujuvalt töötada ja määratleb ka koodi hea struktuurivormingu.

  • Kasutage Loop, kui soovite lisada tingimuse, mida tuleb kontrollida iga väljavõtte täitmiseks.

Kood:

 Sub WhileEx3 () Dim i Dim Integer i = 1 Kas lahtrid (i, 2) .Väärtus = i * ii = i + 1 silmus, kuigi i <= 10 End Sub 

  • Käivitage see kood, vajutades käsitsi nuppu F5 või Käivita, ja vaadake väljundit.

Näete väljundit, nagu on näidatud ülaltoodud joonisel.

Kuidas see kood taustprogrammis töötab?

Süsteem korrutab i väärtuse (alustades 1-st) ja salvestab iga rea ​​teises veerus (lahtrid (i, 2)) ükshaaval. Kood peatub täitmise niipea, kui muutuja i väärtus on jõudnud 10. Väljund võib olla sama, mis loogiliselt tähendab, et mõlemad koodid töötavad samamoodi. Kuid peamine erinevus seisneb koodi kompileerimises. Viimases näites oli seis juba olemas ja süsteem teadis, millise numbriga ta peab minema. Selles koodis ei tea süsteem aga avalduste täitmise ajal valitsevat tingimust ja töötab iteratsiooni ükshaaval. Kuni tingimus on vale, lõpetas kood täitmise.

Asjad, mida tuleb VBA-st meeles pidada

  • Kuigi-Wendi silmus on vananenud ja sobib selleks lihtsalt koodide vanemate versioonidega. Selle asemel peaksite kasutama Do-While silmust.
  • Do-Kuigi silmus on paindlikum ja paremini struktureeritud, võrreldes But-Wend ahelaga.
  • Tegevusaega saab kasutada kahel viisil, kus ühel juhul saate esmalt lisada kontrollitava tingimuse ja seejärel lisada tingimust rahuldavad avaldused. Muul viisil saate esmalt lisada avaldused ja hiljem lisada kontrollitava tingimuse.
  • Taandeid on soovitatav kasutada silmustes, et kood oleks dünaamilisem ja hõlpsamini loetav.

Soovitatavad artiklid

See on juhend VBA-le Do Do Loop. Siin arutasime, kuidas kasutada programmi Excel VBA Do While Loop koos mõne praktilise näite ja allalaaditava excelimalliga. Võite vaadata ka meie teisi soovitatud artikleid -

  1. Kuidas kasutada FIND-funktsiooni Excelis?
  2. Kuidas kasutada funktsiooni VBA TRIM?
  3. VBA massiivid | Täielik juhendaja
  4. Kuidas kasutada VBA erijuhtumit?

Kategooria: