Excel VBA Tee, kunnes silmukka

Tee, kunnes silmukka jatkaa lauseiden toistamista, kunnes ehto / kriteerit tulevat TODEiksi. Se suorittaa lauseet niin kauan kuin olosuhteet ovat Väärä. Heti kun ehdosta / kriteeristä tulee Tosi, se lopettaa silmukan. Sitä voidaan pitää vastakohtana Do While -silmukalle, jossa silmukka jatkuu niin kauan kuin kriteerit ovat TODEET ja loppuu, kun kriteerit ovat VÄÄRÄT.

Katso alla oleva vuokaavio, joka selittää Do Kuni -silmukan toiminnan:

Syntaksi Tee kunnes silmukka Excel VBA: ssa

Tee kunnes Loopilla on kahta tyyppistä syntaksia Excel VBA: ssa.

Syntaksi 1:

 Tee kunnes (ehto) (toteutettavat lausunnot) Loop 

Syntaksi 2:

 Tee (Suoritettavat lausunnot) Loop kunnes (ehto) 

Perusero näiden kahden syntaksin välillä on suorittaminen. Ensimmäisessä syntaksissa silmukka tarkistaa aina, onko ehto tosi vai väärä. Jos se on väärä, se toistaa silmukan uudelleen. Heti kun ehto / kriteerit ovat totta, se lopettaa silmukan. Tässä tapauksessa on mahdollista, että silmukka päättyy itse iteraatioon (jos ehto on totta). Siksi et saa tulosta siinä tapauksessa. Toisessa syntaksissa silmukka kuitenkin suorittaa aluksi lauseet ja tarkistaa sitten olosuhteen, onko se totta vai vääriä. Jos ehto on väärä, se suorittaa taas saman lausekkeen ja tarkistaa ehdon. Jos itsessään ensimmäinen iterointi antaa ehdon True, tämä silmukka loppuu, mutta ennen sitä sillä on käsky suoritettu. Tällöin saamme ainakin yhden iteraation (null-tulosteena).

Lopuksi näiden kahden koodin lähtö on sama. Täytäntöönpano eroaa kuitenkin näistä kahdesta.

Esimerkki Excel VBA -sovelluksesta, kunnes silmukka

Katsotaan esimerkkejä Do Kuni Loop -sovelluksesta Excel VBA: ssa.

Voit ladata tämän VBA Do Kuni Loop Excel -mallin täältä - VBA Do Kuni Loop Excel Template

Esimerkki 1 - VBA Tee, kunnes silmukka, kun olosuhteet tarkistetaan alussa

Noudata alla olevia vaiheita soveltaaksesi Do Kuni -silmukkaa Excel VBA: ssa.

Vaihe 1: Aseta uusi moduuli Visual Basic Editoriin (VBE), jotta voit kirjoittaa koodin.

Vaihe 2: Määritä alimenettely, joka voi tallentaa kirjoittamasi makrokoodin.

Koodi:

 Sub Do_Until_Ex1 () End Sub 

Vaihe 3: Määritä uusi muuttuja “X” tietotyypiksi “Pitkä”. Tätä muuttujaa voidaan käyttää ehtona / kriteerinä kohdassa Do till loop.

Koodi:

 Sub Do_Until_Ex1 () himmentää X: ää niin pitkään kuin sub 

Vaihe 4: Aseta muuttujan X alkuarvoksi 1.

Koodi:

 Sub Do_Until_Ex1 () himmentää X niin kauan kuin X = 1 lopussa sub 

Vaihe 5: Aloita silmukka avainsanoilla Tee asti.

Koodi:

 Sub Do_Until_Ex1 () himmennä X niin kauan kuin X = 1 tee loppuun asti sub 

Vaihe 6: Määritä kriteerit X = 11 kohdassa Tee asti. Tämä on tila, joka antaa silmukan katkaista, kun on totta. Se tarkoittaa, että silmukka jatkuu, kunnes arvo X = 11. Heti kun X: n arvo on 11, silmukka loppuu.

Koodi:

 Sub Do_Until_Ex1 () himmennä X niin kauan kuin X = 1 Tee, kunnes X = 11 End Sub 

Vaihe 7: Käytä nyt VBA-soluja. Arvo-toiminto, jotta voidaan lisätä kunkin numeron neliö X: ään saakka ensimmäisen sarakkeen alle.

Koodi:

 Sub Do_Until_Ex1 () himmentää X niin kauan kuin X = 1 Tee, kunnes X = 11 solua (X, 1) .Arvo = X * X End Sub 

Vaihe 8: Jälleen meidän on asetettava lisäys X: ssä yhdellä, jotta joka kerta silmukka käy ja tarkistaa kunnon, se menee seuraavaan numeroon ja tallentaa sen neliöarvon vastaavaan soluun numeroon 11 asti.

Koodi:

 Sub Do_Until_Ex1 () Dim X niin kauan X = 1 Tee kunnes X = 11 solua (X, 1) .Arvo = X * XX = X + 1 End Sub 

Vaihe 9: Suorita tämä Tee kunnes silmukka kirjoittamalla avainsana ”Loop” koodin loppuun.

Koodi:

 Sub Do_Until_Ex1 () himmentää X niin kauan kuin X = 1 Tee, kunnes X = 11 solua (X, 1) .Arvo = X * XX = X + 1 silmukka End Sub 

Tässä koodissa halusimme saada neliöarvot numeroille, jotka alkavat 1: stä 11: een (heti kun arvo on 11, silmukka päättyy). Jokaisen excel-taulukon solun alle (kunnes solu numero 11) arvot tallennetaan. Yhden yksikön lisäys antaa numeron kasvattaa joka kerta yhdellä X: n edellisen arvon kohdalla ja kyseisen luvun neliöarvo tulostetaan vastaavaan soluun. Esimerkiksi 3: n neliön arvo tulostetaan aktiivisen excel-arkin 3. soluun. Tämä silmukka kulkee niin kauan kuin X ei ole yhtä kuin 11. Siksi solun A1 alla soluun A10 saamme luvun neliöarvot, jotka alkavat välillä 1-10 (numerolla 11 silmukka päättyy).

Vaihe 10: Paina Suorita-painiketta tai paina F5-näppäintä suorittaaksesi tämän koodin ja nähdäksesi tulosteen.

Esimerkki 2 - Tee kunnes silmukka, kun olosuhteet tarkistetaan silmukan lopussa

Noudata alla olevia vaiheita soveltaaksesi Do Kuni -silmukkaa Excel VBA: ssa.

Vaihe 1: Määritä uusi aliproseduuri VBE-moduulissa.

Koodi:

 Sub Do_Until_Ex2 () End Sub 

Vaihe 2: Määritä muuttuja “Y” tietotyypiksi “pitkä”. Tämä muuttuja on hyödyllinen olosuhteiden luovuttamisessa.

Koodi:

 Sub Do_Until_Ex2 () himmennä Y niin pitkään kuin sub 

Vaihe 3: Aseta muuttujan “Y” alkuarvoksi 1.

Koodi:

 Sub Do_Until_Ex2 () himmennä Y kunhan Y = 1 loppu Sub 

Vaihe 4: Lisää Do-ehto kirjoittamalla Do seuraavalle riville sen jälkeen kun olet asettanut alkuarvon Y arvoksi 1.

Koodi:

 Sub Do_Until_Ex2 () himmennä Y kunhan Y = 1 Lopeta sub 

Vaihe 5: Lisää suoritettavan koodin kappale Do-silmukan alle. Otetaan tässä sama esimerkki kuin yllä (se auttaa meitä oppimaan, kuinka tulosteet ovat samat, mutta kokoelmat ovat erilaisia ​​näistä kahdesta koodista).

Koodi:

 Sub Do_Until_Ex2 () himmentää Y kunhan Y = 1 Do Sheets ("Esimerkki 2"). Solut (Y, 1) .Value = Y * Y End Sub 

Vaihe 6: Jokaisen silmukan toiston jälkeen haluat, että arvoa nostetaan yhdellä yksiköllä, aseta komento Do-osiossa.

Koodi:

 Sub Do_Until_Ex2 () himmentää Y kunhan Y = 1 Do Sheets ("Esimerkki 2"). Solut (Y, 1) .Value = Y * YY = Y + 1 End Sub 

Vaihe 7: Lisää tämän silmukan päätöslauselma avainsanalla “Loop”.

Koodi:

 Sub Do_Until_Ex2 () himmentää Y kunhan Y = 1 Do Sheets ("Esimerkki 2"). Solut (Y, 1) .Value = Y * YY = Y + 1 Loop End Sub 

Pidä kiinni! Siellä on jotain muuta. Sinun on lisättävä kriteerit / ehdot tämän silmukan alle, tällä kertaa Loop-avainsanan jälkeen. Sen avulla kääntäjä voi tarkistaa tilan silmukan lopussa.

Vaihe 8: Lisää kunnes Y = 11 ehdona Loop avainsanan jälkeen.

Koodi:

 Sub Do_Until_Ex2 () himmentää Y kunhan Y = 1 Do Sheets ("Esimerkki 2"). Solut (Y, 1) .Value = Y * YY = Y + 1 silmukka, kunnes Y = 11 End Sub 

Vaihe 9: Suorita tämä koodi napsauttamalla F5 tai Suorita-painiketta ja katso taika taulukon nimeltä ”Esimerkki 2”.

Kuinka tämä koodi toimii?

Järjestelmä neliöittää Y-arvoon joka kerta silmukan alla ja tallentaa sen riviltä riville arkin ”Esimerkki 2” toisen sarakkeen alle. Jokaisen iteraation jälkeen Y: n nykyarvoa kasvatetaan yhdellä yksiköllä ja päivitetty arvo neliöidaan ja tallennetaan. Niin kauan kuin arvo on pienempi kuin kriteeriarvo (Y = 11), koodi tekee neliön ja tallentaa sen ylöspäin. Heti kun arvo kääntäjä saavuttaa arvon Y = 11, se lopettaa koodin suorittamisen ja lopettaa sen.

Molemmat koodit antavat samanlaisen tuotoksen, mutta loogisesti on, että kummankin kokoelmissa on ero. Ensimmäisen tyyppisessä koodissa tila tarkistetaan silmukan alussa ja jos se on väärä, vain silmukka alkaa arvioida seuraavaa lauseketta. Toisessa esimerkissä koodi kuitenkin alkaa suorittaa silmukkaa ja suorittaa Do-käskyjä alussa (arvojen tallentaminen puskurimuistiin suorituslausekkeille). Silmukan lopussa kääntäjä keksii kriteerin ja tarkistaa saman puskurin arvon kanssa.

Muistettavat asiat

  • VBA Do till on täsmälleen käänteinen tapaus Excel VBA Do While -sovellukseen. VBA Tee, kun silmukka toimii niin kauan kuin tila on Tosi. Kun ehto on Väärä, Tee silmukka lopetetaan. Toisaalta VBA Do Kuni toimii niin kauan kuin ehto on Väärä. Heti kun ehto on Tosi, silmukka päättyy.
  • Sillä on kaksi menettelytapaa: toinen, jossa tila tarkistetaan silmukan alussa, ja toinen, kun ehto tarkistetaan silmukan lopussa.

Suositellut artikkelit

Tämä on opas VBA Do till Loop -sivulle. Tässä keskustellaan kuinka voit käyttää Excel VBA Do Kuni Loop -sovellusta yhdessä joidenkin käytännöllisten esimerkien ja ladattavan Excel-mallin kanssa. Voit myös käydä läpi muiden ehdottamiemme artikkeleidemme -

  1. VBA Vaikka silmukka
  2. LOOKUP-kaava Excelissä
  3. Täydelliset oppaat VBA-silmukoilla
  4. Hakutaulukko Excelissä

Luokka: