Excel VBA -tauko silmukalle

VBA-taukoa käytetään, kun haluamme poistua tai katkaista jatkuvan silmukan, jolla on tietyt kiinteät kriteerit. Koska silmukka on laajuusalueella, määrittelee lauseet, jotka suoritetaan toistuvasti kiinteän ajan. Joskus kun käytämme minkä tahansa silmukkaolosuhteita VBA: ssa, usein tapahtuu, että koodi jatkaa toimintaansa ilman loppua tai taukoa. Tällaisten tilanteiden välttämiseksi on suositeltavaa käyttää joitain taukoja tai poistotoimintoja, joiden avulla voimme poistua silmukasta mitattavissa olevan makron lähdön avulla.

Kuinka käyttää Excel VBA -taukoa silmukalle?

Opimme käyttämään VBA-taukoa Loopille muutamalla esimerkillä Excelissä.

Voit ladata tämän VBA-tauon Loop Excel -malliin täältä - VBA Tauko Loop Excel -malliin

Esimerkki 1 - VBA-tauko silmukalle

Näemme esimerkin, jossa For- silmukkaa käytettäessä kriteerijärjestelyä ei rikota. Mutta tämän korjaamiseksi käytämme If-End- silmukkaa. Tätä varten tarvitsemme moduulin, johon kirjoitamme tämän koodin.

Noudata alla olevia vaiheita käyttääksesi Break for Loop -tapahtumaa Excel VBA -sovelluksessa.

Vaihe 1: Avaa uusi moduuli, siirry VBA-ikkunaan ja valitse sitten Lisää-valikon vaihtoehdosta Moduuli.

Vaihe 2: Tämä vie meidät uuteen moduuliin VBA: ssa. Kirjoita nyt moduuliin alaluokka VBA Break For Loop -nimeen tai muuhun nimeen, joka määrittelee sen merkityksen.

Koodi:

 Sub VBABreak1 () End Sub 

Vaihe 3: Määritä nyt DIM millä tahansa aakkosella tai sanalla. Tämä antaa sille identiteetin. Käytämme tässä aakkosta “A” alla.

Koodi:

 Sub VBABreak1 () himmentää loppua Sub 

Vaihe 4: Nyt määritä se kokonaislukuna, jota käytetään vain numeroihin, kuten alla on esitetty.

Koodi:

 Sub VBABreak1 () himmentää kokonaislukuna loppua sub 

Vaihe 5: Määritä nyt numeroarvo kokonaisluvulle A. Oletetaan, että se on 10 alla esitetyllä tavalla.

Koodi:

 Sub VBABreak1 () himmentää A kokonaislukuna A = 10 End Sub 

Vaihe 6: Aloita nyt For-silmukka ja harkitse A: n lähtöarvoa. On parempi, että tämä arvo otetaan nollaksi. Tästä tulee helppo laskea.

Koodi:

 Sub VBABreak1 () himmentää A kokonaislukuna A = 10 A = 0 - vaiheeseen 2 loppu Sub 

Vaihe 7: Ja tulostaaksesi A-arvoon tallennetun arvon, käytämme viestiruutua, joka hakee arvon. Voit myös käyttää mitä tahansa lausekemuotoa tehdäksesi viestiruudusta merkityksellisemmän, mikä on valinnainen. Olemme käyttäneet sitä alla esitetyllä tavalla.

Koodi:

 Sub VBABreak1 () himmentää A kokonaislukuna A = 10 A = 0 - vaiheeseen 2 MsgBox ("Arvo on A on:" & A) Seuraava loppu Sub 

Vaihe 8: Käännä nyt koodi vaihe vaiheelta toimintonäppäimellä F8 ja suorita sen jälkeen koodi napsauttamalla Toista-painiketta alla olevan kuvan mukaisesti. Nähdään, että jokaisen vaiheen lähtö on 0 - 10 askelvälissä 2, kuten alla on esitetty.

Vaihe 9: Viimeinkin sulje For Loop ja käytä Next lopussa. Seuraavaa käytetään, kun koodissa käytetään numeroita.

Koodi:

 Sub VBABreak1 () himmentää A kokonaislukuna A = 10 A = 0 - vaiheelle 2 MsgBox ("Arvo on A on:" & A) Poistu seuraavan lopun alaosaan 

Vaihe 10: Tämä osoittaa, että silmukka ei ole täydellinen ja joudumme täyttämään myös poistumiskriteerit poistuaksemme For-silmukasta. Ja siihen käytämme If-End Loop -ehtoa. Joten harkitse kirjoittamista Jos silmukka samalle kokonaisluvulle A. Valitse tästä raja, kunnes haluat suorittaa silmukan. Olemme pitäneet sitä 4: nä.

Koodi:

 Sub VBABreak1 () himmentää A kokonaislukuna A = 10 A = 0 - askelelle 2 MsgBox ("Arvo on A on:" & A) Jos A = 4, poistu sitten seuraavan lopun alaosaan 

Vaihe 11: Nyt lisätään vielä yksi kriteeri, jossa käytämme kuinka monta kertaa se kerrotaan millä tahansa numerolla. Oletetaan, että se on 10. Voit valita minkä tahansa muun luvun 10 sijaan. Mutta käyttämällä 10, kerroinpiirin ymmärtäminen on helppoa.

Koodi:

 Sub VBABreak1 () himmentää A kokonaislukuna A = 10 A = 0 - askelelle 2 MsgBox ("Arvo on A on:" & A) Jos A = 4 Sitten A = A * 10 Poistu seuraavan lopun alaosaan 

Vaihe 12: Käytä nyt taas nimiviestiruutua, kuten olemme käyttäneet For-silmukkaan, ja sulje viimeinkin If Loop with End if -lause, kuten alla.

Koodi:

 Sub VBABreak1 () himmentää A kokonaislukuna A = 10 A = 0 - vaiheeseen 2 MsgBox ("Arvo on A on:" & A) Jos A = 4 Sitten A = A * 10 MsgBox ("arvo on A on : "& A) Lopeta loppua varten, jos seuraava loppu Sub 

Vaihe 13: Käännä koodi uudelleen ja suorita se. Loop: lle alkaa näyttää viesti, jolla on arvo 0 ja jota seuraa 2, 4 ja lopettaa sen 40. Mikä tarkoittaa, että Loop rikkoutui kolmannessa iteraatiossa ja otti viimeisen arvon 40: ksi.

Esimerkki 2 - VBA-tauko silmukalle

Tässä esimerkissä haemme For-silmukkaa ja näemme kuinka katkaista silmukka, kun se täyttää kriteerit.

Vaihe 1: Avaa uusi moduuli Lisää-valikon vaihtoehdosta ja anna sille alaluokka millä tahansa nimellä tai paremmin peräkkäin, kuten alla on esitetty.

Koodi:

 Sub VBABreak2 () End Sub 

Vaihe 2: Määritä nyt DIM A kokonaislukuna. Lukumäärän käyttäminen testissä antaa meille mahdollisuuden toteuttaa koodi nopeammin ja virheenkorjaus on helppoa.

Koodi:

 Sub VBABreak2 () himmentää kokonaislukuna loppua sub 

Vaihe 3: Aloita nyt For-silmukka määritellylle kokonaisluvulle ja anna sille etäisyys mistä tahansa rivimäärästä alkaen 1. Olemme valinneet 20: een.

Koodi:

 Sub VBABreak2 () himmentää A kokonaislukuna A = 1 - 20 loppuun Sub 

Vaihe 4: Anna nyt alue tai sijainti, josta numerot tulostetaan peräkkäin. Käytimme ThisWorkBookia nykyisen avatun tiedoston ja laskentataulukoiden (1) valintaan avatun työkirjan ensimmäisen sivun valitsemiseksi alla olevan kuvan mukaisesti. Nyt sulkeaksesi For loop -sovelluksen kirjoita Seuraava loppuun, kuten alla.

Koodi:

 Sub VBABreak2 () himmentää A kokonaislukuna A = 1 - 20 ThisWorkbook.Worksheets (1) .Cells (A, 1) = Next End Sub 

Vaihe 5: Suorita yllä oleva koodi manuaalisesti tai pikanäppäimellä F5. Voimme nähdä, että koodi on antanut lukumäärän 1 - 20.

Vaihe 6: Nyt katkaistaksemme silmukan välillä 0 - 20, käytämme If-End if loop -olosuhdetta, jossa annamme kriteerit putoamiseksi, kuten alla on esitetty.

Koodi:

 Sub VBABreak2 () himmentää A kokonaislukuna A = 1 - 20, jos loppua, jos tämä työkirja.työarkkitaulukot (1) .Kellot (A, 1) = seuraavan lopun alaosa 

Vaihe 7: Kirjoita nyt kriteerit, jos A on suurempi kuin 9 (tai mikä tahansa luku, mutta vähemmän kuin 20), lopeta sitten alla olevan kuvan mukaisesti. Oletetaan, että For Loop pitäisi rikkoutua, kun silmukka saavuttaa 9.

Koodi:

 Sub VBABreak2 () himmentää A kokonaislukuna A = 1 - 20, jos A> 9, sitten poistu loppuun, jos tämä työkirja.Työarkki (1) .Kellot (A, 1) = Seuraava loppu Sub 

Vaihe 8: Käännä nyt koodi löytääksesi virhe. Jos virhettä ei löydy, suorita se. Nähdään, että kokonaislukua A varten arvot 1 - 20 on täytetty, kunnes koodi on poistunut tai rikkoutunut kohdassa 9.

Plussat VBA-tauosta silmukalle

  • Exit- tai Break-toimintoa voidaan käyttää paitsi For loop -silmukan lisäksi myös monissa muissa silmukoissa, kuten Do-While.
  • Tätä käytetään yleisimmin kaikissa VBA: ssa saatavissa olevissa silmukkaolosuhteissa.
  • For Loop on melko helppoa ja voi toimia myös ilman Poistu-ehtoja.

Muistettavat asiat

  • Sillä silmukka voi toimia antamatta Poistu-ehtoja. Se voi toimia hyvin, kunnes kriteerit ilman Poistua katkaisevat silmukan loppuun.
  • On tärkeää katkaista kaikki silmukat, jotka eivät täytä poistumiskriteerejä, käyttämällä Poistu silmukassa.
  • Kun olet kirjoittanut koodin, tallenna tiedosto nimellä Macro Enable Excel, jotta kirjoitettu koodi säilyisi.

Suositellut artikkelit

Tämä on opas VBA Break For Loop -tapahtumaan. Tässä keskustellaan siitä, kuinka käyttää Excel VBA -sivunsiirtoon liittyviä käytännön esimerkkejä ja ladattavaa Excel-mallia. Voit myös käydä läpi muiden ehdottamiemme artikkeleidemme -

  1. VBA InStr selitti esimerkeillä
  2. VBA-kokonaisluvutietotyyppi
  3. Kuinka valita solu VBA-koodilla?
  4. Siirrä alue VBA: han

Luokka: