VBA hurkok - A top 4 huroktípus listája (példákkal)

Tartalomjegyzék

Excel VBA hurkok

A hurokokat általában az összes programozási nyelvben használják, ahol bizonyos igények vagy kritériumok merülnek fel, amikor egy bizonyos kód futtatásához szükségünk van egy adott idő futtatására, hurkokat használunk ezekhez a kódokhoz. míg a Add-ig, a hurokhoz és az egyes ciklusokhoz ezek a hurkok segítenek a kód végrehajtásában, amíg a feltétel nem teljesül.

Hadd tegyem ezt a megállapítást már a legelején. "Ha el akarsz sajátítani a VBA-ban, akkor be kell fejeznünk a hurkák fogalmát a VBA-makrókban."

A hurok nem más, mint egy cellatartományon való áthaladás, egy sor objektumon keresztül, hogy megismételje ugyanazt a feladatot a cellák vagy objektumok gyűjtésére. Ahelyett, hogy a feladatot külön kódsorban haladnánk hurkok használatával, a lehető legkisebbre csökkenthetjük a kód hosszát.

A VBA hurkok 4 legnépszerűbb típusának felsorolása

  1. A Next Loop számára
  2. Minden hurokhoz
  3. Tedd a hurok közben
  4. Tedd a hurokig

Nézzük meg részletesen ezeket a típusokat.

1. típus - A következő hurokhoz

A Next ciklus lehetővé teszi számunkra, hogy végigvigyen a cellatartományon, és ugyanazt a feladatot hajtsuk végre a ciklusban megadott minden cellánál. Itt meg kell mondanunk a kezdő és a vég számot.

Példa

Például, ha 1 és 10 közötti sorszámokat szeretne beilleszteni, akkor az alábbiakban a sorozatszámok beszúrásának hagyományos módja szerepel.

Alsó sorszám ()

Tartomány („A1”). Érték = 1
tartomány („A2”). Érték = 2
tartomány („A3”). Érték = 3
tartomány („A4”). Érték = 4
tartomány („A5”). Érték = 5
Tartomány („A6”). Érték = 6
tartomány („A7”). Érték = 7
tartomány („A8”). Érték = 8
tartomány („A9”). Érték = 9
tartomány („A10”). Érték = 10

End Sub

Jól néz ki, nem? De a probléma itt csak tízszeres, hogy ezt a feladatot végre kell hajtanunk. De képzelje el, mi van, ha 100 vagy 1000 számot szeretne beszúrni, megírhatja a kódot 100 vagy 1000 sorral. Lehetetlen, és itt jön jól a For Next hurok szépsége.

1. lépés: Nyissa makro- és állapítsa meg a változó i mint egész.

Sub Insert_Serial_Number ()

Dim i egész számként

End Sub

2. lépés: Most nyissa meg a For Loop elemet . Itt említsük meg a ciklus kezdetét és végét az i változó segítségével .

3. lépés: Most írja be a végrehajtani kívánt kódot. 1 és 10 közötti számokat kell beillesztenünk az A1 és A10 cellákba. A Range módszer alkalmazása helyett alkalmazza a Cellák módszert.

Kérdi a sorszámot, mivel az i változót először egész számként deklaráltuk . Értéke 1 Tehát oldalon i , mint a sor számát, és 1, mint a oszlop számát.

Most az aktuális cellaértéknek egynek kell lennie, ahelyett, hogy az első számú i értéket említenénk . Mivel minden ciklus futásakor az i értéke 1-gyel növekszik.

Most nyomja meg az F8 billentyűt, hogy egyenként lépjen. Nyomja meg az F8 billentyűt, amíg el nem éri a For ciklust.

Ez a sárga szín jelzi, hogy a kiválasztott kódsor futni készül. Helyezzen egy kurzort az I-re, és az értéke nulla lesz.

Most nyomja meg még egyszer az F8 billentyűt, és helyezzen egy kurzort az i-re .

Tehát az értékek i mindenhol most egyenlő 1. „ Cells (I, 1) .value = I” eszközzel sejteket (1, 1) .value = 1.

Nyomja meg az F8 billentyűt, és nézze meg az értéket az A1 cellában. Az A1 cellában 1-et kell látnia.

Most, ha megnyomja az F8 billentyűt, még egyszer visszatér a For ciklushoz, mert az i változó végkorlátja 10. Ez az I érték 2 lesz.

A Next ciklus 10-szer fog futni, és helyezze be az 1-től 10-ig terjedő sorszámokat.

2. típus - Minden hurokhoz

A VBA minden hurokja objektumgyűjteményen keresztüli hurkolásra szolgál. A következő ciklushoz a cellákon keresztül végez ciklust, és hajtsa végre a feladatot, az egyes ciklusok között pedig olyan objektumokat végez, mint a munkalapok, diagramok, munkafüzetek és alakzatok.

Ezt a ciklust használva átmehetünk az összes munkalapon és elvégezhetünk néhány feladatot. Például az összes munkalapon áttekintheti a munkalapok elrejtését és elrejtését.

1. példa

Ha el akarja rejteni az összes munkalapot, kivéve azt a lapot, amelyen dolgozik, hogyan fogja megtenni? Ha 20 lapja van a munkafüzetben, ez időigényes folyamat. De a MINDEN hurkon keresztül elvégezhetjük ezt a feladatot.

5 lapom van, és az összes lapot el akarom rejteni, kivéve, hogy a kód alatti „Fő” lap elvégzi a feladatot helyettem.

Sub To_Hide_All_Sheet ()

Dim Ws munkalapként

Minden W-re az ActiveWorkbookban. Munkafüzetek

Ha Ws.Name „Main”, akkor
Ws.Visible = xlSheetVeryHidden
End If

Következő Ws

End Sub

2. példa

Ha el szeretné rejteni az összes elrejtett lapot, akkor az alábbi kód elvégzi a munkát az Ön számára.

Sub To_UnHide_Specific_Sheet ()

Dim Ws munkalapként

Minden W-re az ActiveWorkbookban. Munkafüzetek

Ws.Visible = xlSheetVisible

Következő Ws

End Sub

# 3. Típus - Végezz hurok közben

A Do While ciklus akkor hajtja végre a feladatot, amikor az adott feltétel IGAZ, és amint a feltétel FALSE lesz, abbahagyja a ciklust. A másik két hurokkal ellentétben a Do While a ciklus végén, és nem az elején teszteli az állapotot.

Megmutatom a példát a sorozatszámok beszúrására a Do While ciklussal.

Sub Do_While_Example ()

Dim i egész számként

i = 1
Do While i <11
sejt (i, 1). Érték = i
i = i + 1
hurok

End Sub

A fenti ciklus addig fut, amíg i kevesebb, mint 11, és folyamatosan szúrja be a sorozatszámokat. Abban a pillanatban , hogy nagyobb leszek, mint 11, abbahagyja a hurkolást.

4. típus - Csináld a hurokig

A Do While ciklussal ellentétben a Do Until ciklus nem fut, amíg a feltétel IGAZ; inkább addig hurkol, amíg a feltétel HAMIS. Nézze meg például az alábbi kódot.

Sub Do_Until_Example ()

Dim i egész számként

i = 1
Addig, amíg i = 11
Cella (i, 1). Érték = i
i = i + 1
hurok

End Sub

Az egyetlen különbség a Do while & Do Until ciklus között az általunk megadott operátor. A Do-ban, miközben említettük a ciklus futtatását, amíg i kisebb, mint (<), 11, de a do-ig ciklust, addig említettük, hogy futtatjuk a ciklust, amíg i meg nem egyezik (=) -val 11-vel.

Dolgok, amikre emlékezni kell

  • Van egy fejlettebb Excel VBA hurok példa, de mindegyiket külön cikkben részletesen bemutatjuk.
  • Minden hurok objektumváltozókra vonatkozik.
  • Bár a Do While & Do Until ugyanúgy néz ki, a feltétel megemlítése nagyon fontos.
  • A hurkok nagyon fontos fogalmak.

érdekes cikkek...