Excel VBA hurkok

A hurkok a VBA legjobban működő elemének tekinthetők, és a makrók szívének is tekinthetők. Általában segítenek abban, hogy csökkentsék a kódban szereplő sorok számát, és perc alatt elvégezzék a munkát, amely órákat vehet igénybe egy ember számára.

A napi életben a programozó olyan esetekkel jár, amikor újra és újra ugyanazt a kódot kell futtatnia. Ezt hurkolásnak hívják. Nyilvánvaló, hogy minden alkalommal, amikor ugyanazt a kódot futtatja, ugyanazt az eredményt kapja, a változó apró tört megváltoztatásával. A huroknak számos előnye van, de a legfontosabb az automatizálás. Segít a dolgok automatizálásában.

Ha még nem használta a VBA Script-et, akkor nyisson meg egy Excel munkafüzetet és nyomja meg az Alt + F11 billentyűt . Megnyitja a VBA projektet.

Menjünk mélyebben befelé.

Tegyük fel, hogy egyszerre 1-10 számot akartunk kinyomtatni. Megtehetjük a következő kóddal.

Kód:

 Sub loop1 () Debug.Print 1 Debug.Print 2 DebugPrint 3 Debug.Print 4 Debug.Print 5 DebugPrint 6 Debug.Print 7 Debug.Print 8 Debug.Print 9 Debug.Print 10 End Sub 

Ha gyorsan megismerheti a kódot, hozzáadtam a Debug.Print-et egyenként, hogy kinyomtassuk az 1-től 10-ig terjedő számokat. A kód futtatása után láthatjuk a kimenetet az azonnali ablakban. Azonnali ablak megnyitásához nyomja meg a Ctrl + G billentyűk bármelyikét az Excelben.

Futtassa a kódot az F5 billentyűvel vagy manuálisan, az alábbi képernyőképen látható módon. Tehát ellenőrizzük a kód kimenetét.

Az VBA hurkok típusai Excelben

Programozóként soha nem lesz szívesen olyan ismétlődő sorokat írni, amelyek ugyanolyan eredményt adnak. Szeretné automatizálni. Ezért láthatunk különféle Excel VBA hurkokat és hogyan használhatjuk őket néhány példa segítségével.

1. típus - VBA a következő hurokhoz

A Next VBA hurok lehetővé teszi, hogy áthúzzuk a cellatartományt, és ugyanazt a feladatot hajtsuk végre a hurokban megadott minden cella számára. Itt kell feltüntetni a kezdő- és a végszámot.

kód:

 Sub loop1 () i = 1-től 10-ig (i, 1) .Value = i Következő i End Sub 

Ez a kód pontosan ugyanazt a kimenetet adja, mint az előző. Ugyanakkor a legfigyelemreméltóbb dolog ebben a kódexben a sorok csökkentése. A 12 soros kódot csupán 5 soros kódra redukáltuk.

Ebben a kódban a loop1 a makró neve. A for hurok i = 1-től kezdődik, kinyomtatja az i (azaz 1) értékét az excel cella alatt, majd a Next-nél ismét a for hurok elejére megy, és i = 2-re nyomtatja i (azaz 2) értékét. a következő cellában és így tovább, amíg a kód el nem éri az utolsó értékét, azaz 10. Amikor a kód eléri az i (10) utolsó értékét, a kód megszűnik, mivel 10-nél nagyobb egész érték nem áll rendelkezésre.

Futtassa a kódot az F5 billentyűvel vagy manuálisan. Tehát az alábbiak szerint láthatja a kimenetet.

2. típus - VBA hurokhoz előre lépéssel

Mint látta az előző hurok példában, egy lépéssel növekedtem. Alapértelmezés szerint a lépés értékét 1-nek tekintik a VBA-ban. Lehetséges-e azonban egy saját lépést megtenni? Tegyük fel, hogy csak az 1 és 20 közötti páros számokat szeretné látni. Hogyan lehet ezt megtenni?

Ahogy az általános matematika sugallja, a 2-től egymástól távol eső számokat (az első páros 2-től kezdve) páros számnak kell tekinteni, igaz?

Ugyanezt a logikát fogjuk alkalmazni. Lásd az alábbi kódot referenciaként.

Kód:

 Sub ForwardStep () i = 2-től 20-ig 2. lépés cellai (i, 1) .Érérték = i Következő i Vége Sub 

A 2-től kezdődő értékeknél ez a hurok lehetővé teszi a 2, 4, 6, 8… 20 nyomtatását a következő Excel cellákban. A 2. lépés kifejezetten megadta, hogy a 2. számtól kezdve a kód a 2. lépéssel ugrik a következő számra (azaz a 4 nyomtatásra kerül) és így tovább. Ez a folyamat addig folytatódik, amíg 20 meg nem jelenik egy cellában. Amint 20 megtörténik egy cellában, a hurok automatikusan megszakad.

Futtassa a kódot az F5 billentyűvel vagy manuálisan. Tehát az alábbiak szerint láthatja a kimenetet.

3. típus - VBA hurokhoz hátrafelé

Ugyanúgy, mint az előremenő lépéssel rendelkező hurok esetében, használhatjuk a hátrameneti lépéssel rendelkező hurkot is. Például, mi lenne, ha a hátrafelé lépést -2-re állítanánk, és a for-hurkot a 20-tól 2-ig tartanánk?

Látni fogjuk, hogyan működik.

kód:

 Sub BackwardStep () i = 20-tól 2-ig - 2. lépés - Hibakeresés. Nyomtatás i Következő i A Sub befejezése 

A kód futtatása után az azonnali ablakban láthatjuk a kimenetet. Azonnali ablak megnyitásához nyomja meg a Ctrl + G billentyűk bármelyikét az Excelben.

Mivel a hurok kezdőpontját 20-ként és végpontként 2-ként adtuk meg a -2 lépéssel, a hurok 20-tól kezdődik, és a -2 lépésben a következő számra megy, amely -18 és így tovább. Amint a hurok eléri a 2-es értéket, automatikusan leáll, és az utolsó érték 2-ben lesz kinyomtatva.

4. típus - VBA beágyazva a hurokba

Festhetünk a TheFor hurkot is. Ugyanakkor nem javasoljuk, hogy ugyanazt a hurkot több mint háromszor fészkelje be egy kódban (logikai hibának tekinthető).

Kérjük, olvassa el az alábbi kódot a hurokba beágyazott kódhoz.

Kód:

 Sub NestedFor () i = 1-től 10-ig j = 1-től 2-ig cella (i, j) .érték = i * j Következő j Következő i Vége Sub 

Ebben a példában i = 1 és j = 1 esetén a makró az i * j (1 * 1) értékét az i = 1 sor és a j = 1 oszlop (azaz az A1 cella) metszéspontjába helyezi, és a következő j (2) tartva i = 1-t. Az i = 1 sor és a j = 2 oszlop (azaz a B1 cella) metszéspontjában a makró beadja az I * j (1 * 2) értéket. A hurok figyelmen kívül hagyja a j következő értékét, mivel j csak 1-től 2-ig változik, és az i következő értékére megy.

I = 2 és j = 1 esetén a makró beírja az i * j (2 * 1) értékét a 2. sor és az 1. oszlop metszéspontjába (azaz az A2 cellába) és folytatja. Az i és a j tartományig.

Futtassa a kódot az F5 billentyűvel vagy manuálisan, az alábbi képernyőképen látható módon. Tehát az alábbiak szerint láthatja a kimenetet.

5. típus - VBA csináljon hurkot

Do Míg a hurok az egyik legérdekesebb hurok a VBA-ban. Ez lehetővé teszi, hogy ellenőrizze a feltételt és írja be a kimenetet (DO), ha egy bizonyos feltétel vagy feltételkészlet teljesül (vagy a feltétel (ek) TRUE).

Lásd az alábbi kódot:

Kód:

 Sub do_whileloop () Dim i Egész számként i = 1 Tegye, míg i <= 10 cella (i, 1) .Érérték = i * ii = i + 1 hurok vége Sub 

Ez a hurok az alábbiak szerint működik:

Az i értékeinek 1-től (kezdetben 1 = 10) 10-ig kiszámítja az i * i értéket (azaz az i minden egyes egész számának négyzetét), és beviszi az 1-10 cellába. A kimenet nem más, mint az 1-től 10-ig terjedő egész számok négyzetértékei. Kérjük, közelebbről nézze meg a Loop kódot. Kötelező feltölteni, különben a rendszer hibát fog felmutatni.

Futtassa a kódot az F5 billentyűvel vagy manuálisan. Tehát az alábbiak szerint láthatja a kimenetet.

Ez néhány a VBA hurok példáiról, amelyekkel ebben a cikkben próbáltam gondoskodni. Remélem, hogy elég pontos lesz néhány fogalom tisztázásához.

Dolgok, amikre emlékezni kell

  • Miközben hátramenettel használja a hurkot, győződjön meg arról, hogy a kezdő számának nagyobbnak kell lennie, mint a végszámnak, és fordítva.
  • A Do loop ciklus alatt győződjön meg arról, hogy a Loop segítségével zárja be a dolgot, mielőtt befejezi a teljes VBA kódot. Ellenkező esetben a rendszer fordító hibát dob ​​a „Do hurok nélkül” hibaüzenettel.

Itt letöltheti ezt a VBA Loops Excel sablont - VBA Loops Excel Template

Ajánlott cikkek

Ez egy útmutató az Excel VBA Loops-hoz. Itt megvitattuk az Excel VBA hurkok típusait és azok használatát, néhány gyakorlati példával és letölthető Excel sablonnal együtt. Megnézheti más javasolt cikkeinket is -

  1. VBA függvény Excelben
  2. VBA VLOOKUP funkció
  3. Excel billentyűparancsok
  4. Excel százalékos képlet

Kategória: