VBA tehdä silmukoita - Kuinka käyttää Excel VBA Do Loops -sovellusta?

Sisällysluettelo

Excel VBA Tee silmukka

VBA Do -silmukka on joukko käskyjä alimenettelyssä, jossa koodi toimii tietyn määrän kertoja, kunnes halutut kriteerit on saavutettu tai mikä tahansa kynnysarvo ylittyy, tai on turvallista sanoa, kunnes vaaditut tiedot on saatu.

Vaikka silmukka toimii loogisten tulosten perusteella, se jatkaa silmukan jatkamista edestakaisin, kun testiehto on TOSI. Heti kun testiolosuhteet palauttavat EPÄTOSI, se poistuu silmukasta. Silmukat ovat minkä tahansa ohjelmointikielen sydän. Artikkelissamme osoitamme silmukoiden ja niiden koodaustapojen tärkeyden. Tässä artikkelissa näytämme sinulle, kuinka Do Loopia käytetään.

Kuinka käyttää VBA Do Loopia?

Esimerkki # 1 - ehto silmukan lopussa

Olemme nähneet kuntotestin silmukan alussa. Aikaisemmassa koodissa olemme nähneet esimerkin sarjanumeroiden lisäämisestä, ja koodi oli sellainen.

Koodi:

Sub Do_While_Loop_Example1 () Dim k As Long k = 1 Do While k <= 10 Solua (k, 1). Arvo = kk = k + 1 Loop End Sub

Nyt voit suorittaa tämän koodin manuaalisesti tai pikanäppäimen F5 kautta nähdäksesi tuloksen.

Tämä koodi lisää sarjanumerot 1-10.

Mutta voimme myös testata kunnon silmukan lopussa. Meidän on käytettävä sanaa "while" ja kuntotestiä sanan Loop jälkeen.

Ainoa muutos tässä on testin soveltaminen loppuun, kuten alla on esitetty.

Koodi:

Sub Do_While_Loop_Example1 () Dim k As Long k = 1 Do Cells (k, 1). Arvo = kk = k + 1 silmukka kun k <= 10 End Sub

Tällä tavoin voimme testata ehdon myös silmukka-lauseen lopussa.

Huomaa: Koodi toimii, sitten se testaa ehdon palata takaisin silmukkaan vielä kerran. Tämä tarkoittaa, että se suoritetaan ensin ja yritetään sitten tilannetta myöhemmin.

Esimerkki # 2 - Yhteenveto tekemällä silmukkaa

Oletetaan, että excel-taulukossasi on myynti- ja kustannustietoja. Alla on joukko nollatietoja, jotka olen luonut laskemista varten.

Nyt meidän on saatava voiton arvo sarakkeeseen C. Olen jo luonut koodin, joka tekee työtä minulle.

Koodi:

Sub Do_While_Loop_Example2 () Dim k As Long Dim LR As Long k = 2 LR = Solut (Rivit.Määrä, 1) .End (xlUp) .Rivin tekeminen k <= LR Solut (k, 3) .Arvo = Solut (k , 1) + Solut (k, 2) k = k + 1 silmukan loppuosa
LR = Solut (Rivit.Määrä, 1) .Loppu (xlUp) .Rivi

Tämä koodi tunnistaa viimeksi käytetyn rivin ensimmäisessä sarakkeessa. Tämä tekee koodista dynaamisen, koska jos dataan lisätään tai poistetaan, se säätää sekvenssiaikani silmukan suorittamiseksi.

k = 2

Haluamme, että laskenta tehdään toisesta solusta eteenpäin. Joten k: n alkuarvo on 2.

Tee kun k <= LR

Kuten kerroin, LR löytää viimeisen käytetyn rivin ensimmäisestä sarakkeesta. Tämä tarkoittaa, että silmukka käy, kun k on <= LR: n arvoon. Tässä tapauksessa minulla on 10 riviä, joten LR = 10.

Silmukka toimii, kunnes k-arvo saavuttaa 10. Kun määrä on läpäissyt 10 silmukkaa, se pysähtyy.

Nyt voit suorittaa tämän koodin pikanäppäimellä F5 tai manuaalisesti nähdäksesi tuloksen.

Esimerkki # 3 - Exit Statement in Do While Loop

Voimme myös poistua silmukasta, kun ehto on edelleen TOSI. Ota esimerkiksi edellä olevat tiedot myös tässä.

Oletetaan, ettet halua tehdä täydellistä laskutoimitusta, mutta sinun on laskettava vain viisi ensimmäistä voittoriviä, ja heti kun se saavuttaa kuudennen rivin, haluat tulla ulos silmukasta. Tämä voidaan tehdä käyttämällä IF-funktiota excelissä. Alla oleva koodi sisältää exit-lauseen.

Koodi:

Sub Do_While_Loop_Example3 () Dim k As Long Dim LR As Long k = 2 LR = Solut (Rivit.Määrä, 1) .End (xlUp) .Rivi Tee Vaikka k 6 Lopeta sitten Solut (k, 3). Arvo = Solut ( k, 1) + Solut (k, 2) k = k + 1 silmukan loppuosa
"Jos k> 6, lopeta sitten"

Tämä koodirivi aloittaa poistumisprosessin. Silmukka jatkuu, kunnes k: n arvo saavuttaa 6. Heti, kun se ylittää 6, Jos ehto suorittaa koodin, Exit Do.

Nyt voit suorittaa tämän koodin pikanäppäimellä F5 tai manuaalisesti nähdäksesi tuloksen.

Muistettavaa

  • Tehdä. Silmukka toimii loogisten tulosten perusteella, ja se jatkaa silmukan jatkamista edestakaisin, kun testiehto on TOSI. Heti kun testiolosuhteet palauttavat EPÄTOSI, se poistuu silmukasta.
  • Voimme poistua silmukasta milloin tahansa säätämällä vielä yhden loogisen testin ympyrän sisällä IF-funktiota käyttämällä.
  • Jos ehto tai testi toimitetaan silmukan yläosassa, se tarkistaa ensin testin ja etenee vain, jos se on TOSI.
  • Jos ehto tai testi toimitetaan silmukan lopussa, se suorittaa ensin koodilohkon silmukka-lauseen sisällä, ja tulevaisuudessa se testaa ehdon päättääkseen, palataanko takaisin suorittamaan silmukka vielä kerran tai ei.

Mielenkiintoisia artikkeleita...