A For-Next ciklusok használata az Excel 2016 VBA programban

Az Excel VBA programozásának legegyszerűbb típusa a For-Next ciklus. A hurkot egy számlálóváltozó vezérli, amely az egyik értéknél kezdődik és egy másik értéknél leáll. A For és a Next utasítás közötti állítások azok az állítások, amelyek ismétlődnek a ciklusban.

Egy For-Next példa

A következő példa a For-Next ciklust használja az első 1000 pozitív szám összegzésére. A Total változó nullával kezdődik. Ezután megtörténik a hurkoltság. A Cnt változó a hurokszámláló. 1-gyel kezdődik, és minden alkalommal 1-gyel növekszik a cikluson keresztül. A ciklus akkor ér véget, amikor Cnt 1000.

Ebben a példában csak egy utasítás van a cikluson belül. Ez az utasítás hozzáadja a Cnt értékét a Total változóhoz. Amikor a ciklus véget ér, egy MsgBox megjeleníti a számok összegét.

Sub Add Numbers()
  Dim Total Duplaként
  Dim Cnt As Long
  Összesen = 0
  Ha Cnt = 1–1000
    Összesen = Összesen + Cnt
  Következő Cnt
  MsgBox összesen
Vége Sub

Mivel a hurokszámláló egy normál változó, kódot írhat az értékének megváltoztatásához a For és a Next utasítások közötti kódblokkon belül. Ez azonban nagyon rossz gyakorlat.

For-Next példák lépéssel

A Step érték segítségével kihagyhat néhány számlálóértéket a For-Next ciklusban. Íme az előző példa, átírva, hogy csak az 1 és 1000 közötti páratlan számokat összegezze:

Sub AddOddNumbers()
  Dim Total Duplaként
  Dim Cnt As Long
  Összesen = 0
  Ha Cnt = 1–1000 2. lépés
    Összesen = Összesen + Cnt
  Következő Cnt
  MsgBox összesen
Vége Sub

Ezúttal a Cnt 1-ből indul, majd 3, 5, 7 és így tovább értékeket vesz fel. A Step érték határozza meg a számláló növelésének módját. Figyelje meg, hogy a felső hurokértéket (1000) valójában nem használja, mert a Cnt legmagasabb értéke 999 lesz.

Íme egy másik példa, amely 3-as lépésértéket használ. Ez az eljárás az aktív lappal működik, és világosszürke árnyalatot alkalmaz minden harmadik sorban, az 1. sortól a 100. sorig.

Sub ShadeEveryThirdRow()
  Dim i As Long
  Ha i = 1–100, 3. lépés
    Sorok(i).Belső.Szín = RGB(200, 200, 200)
  Következő i
Vége Sub

Tekintse meg a makró futtatásának eredményét.

A For-Next ciklusok használata az Excel 2016 VBA programban

Hurok segítségével háttérárnyékolást alkalmazunk a sorokra.

Egy For-Next példa egy Exit For utasítással

A For-Next ciklus egy vagy több Exit For utasítást is tartalmazhat a cikluson belül. Amikor a VBA találkozik ezzel az utasítással, a ciklus azonnal véget ér.

A következő példa az Exit For utasítást mutatja be. Ez a rutin egy függvényeljárás, amelyet munkalapképletekben való használatra terveztek. A függvény elfogad egy argumentumot (az Str nevű változót), és visszaadja az első számjegytől balra lévő karaktereket. Ha például az argumentum „KBR98Z”, a függvény a „KBR” értéket adja vissza.

Függvény szövegrész (Str)
  Dim i As Long
  TextPart = ""
  Ha i = 1 Len(Str)
    Ha IsNumeric(Mid(Str, i, 1)) Akkor
      Kilépés ehhez
    Más
      Szövegrész = Szövegrész és közép (Str, i, 1)
    Vége Ha
  Következő i
Funkció befejezése

A For-Next ciklus 1-gyel kezdődik, és a karakterláncban lévő karakterek számát jelző számmal végződik. A kód a VBA Mid funkcióját használja egyetlen karakter kinyerésére a cikluson belül. Ha numerikus karaktert talál, az Exit For utasítás végrehajtásra kerül, és a ciklus idő előtt véget ér.

Ha a karakter nem numerikus, a rendszer hozzáfűzi a visszaadott értékhez (amely megegyezik a függvény nevével). A ciklus csak akkor vizsgál meg minden karaktert, ha az argumentumként átadott karakterlánc nem tartalmaz numerikus karaktereket.

Egy beágyazott For-Next példa

A ciklusban tetszőleges számú utasítás szerepelhet, és a For-Next ciklusokat más For-Next ciklusokba ágyazhatja be.

A következő példa egy beágyazott For-Next ciklust használ véletlen számok beszúrására egy 12 sorból 5 oszlopból álló cellatartományba. Figyeljük meg, hogy a rutin a belső hurkot (a sorszámlálóval ellátott hurkot) egyszer hajtja végre a külső ciklus (a Col számlálóval rendelkező hurok ) minden egyes iterációjához . Más szavakkal, a rutin 60-szor hajtja végre a Cells(Row, Col) = Rnd utasítást.

A For-Next ciklusok használata az Excel 2016 VBA programban

Ezeket a cellákat egy beágyazott For-Next hurok használatával töltöttük ki.

Sub FillRange()
  Dim Col As Long
  Dim Row As Long
  Col = 1-től 5-ig
    Sor esetén = 1–12
      Cellák (sor, oszlop) = Rnd
    Következő sor
  Következő ezr
Vége Sub

A következő példa beágyazott For-Next ciklusokat használ egy háromdimenziós tömb inicializálására 100 értékkel. Ez a rutin az összes ciklus közepén végrehajtja az utasítást (a hozzárendelési utasítást) 1000 alkalommal (10 * 10 * 10), minden alkalommal i, j és k értékeinek eltérő kombinációjával:

Sub NestedLoops()
  Dim MyArray (10, 10, 10)
  Dim i As Long
  Dim j As Long
  Dim k As Long
  Ha i = 1-től 10-ig
    Ha j = 1–10
      Ha k = 1–10
        Saját tömb(i, j, k) = 100
    Következő k
  Következő j
Következő i
  "A többi kijelentés ide tartozik
Vége Sub

Íme egy utolsó példa, amely beágyazott For-Next ciklusokat használ Step értékkel. Ez az eljárás a váltakozó cellák háttérszínének megváltoztatásával sakktáblát hoz létre.

A For-Next ciklusok használata az Excel 2016 VBA programban

Hurkok használata sakktábla-minta létrehozásához.

A sorszámláló 1 és 8 között mozog. Az If-Then konstrukció határozza meg, hogy melyik beágyazott For-Next struktúrát kell használni. Páratlan sorok esetén a Col számláló 2-vel kezdődik. A páros sorok esetén a Col számláló 1-gyel kezdődik. Mindkét ciklus 2-es Step értéket használ, így az alternatív cellákat érinti. Két további utasítás négyzet alakúvá teszi a cellákat (mint egy igazi sakktábla).

Sub MakeCheckerboard()
  Dim R As Long, C As Long
  Ha R = 1–8
    Ha WorksheetFunction.IsOdd(R) Akkor
     C = 2–8 esetén 2. lépés
       Cellák (R, C).Belső.Szín = 255
     Következő C
    Más
     C = 1-től 8-ig 2. lépés
       Cellák (R, C).Belső.Szín = 255
     Következő C
    Vége Ha
  Következő R
  Sorok („1:8”). Sormagasság = 35
  Oszlopok ("A:H"). Oszlopszélesség = 6,5
Vége Sub

Leave a Comment

Lábjegyzetek és végjegyzetek létrehozása a Word 2013-ban

Lábjegyzetek és végjegyzetek létrehozása a Word 2013-ban

Lábjegyzetek és végjegyzetek létrehozása a Word 2013-ban. Részletes útmutató, hogyan készíthet különféle stílusú jegyzeteket bibliográfiai információkhoz vagy magyarázó megjegyzésekhez.

Hogyan lehet kiemelni a statisztikailag kiugró értékeket az Excelben

Hogyan lehet kiemelni a statisztikailag kiugró értékeket az Excelben

Tudjon meg mindent arról, hogyan lehet az Excelben kiemelni a statisztikailag kiugró értékeket, mégpedig egyszerű eszközökkel és módszerekkel. Kiemelt figyelmet fordítunk a kiugró értékek azonosítására és kezelésére.

Hogyan lehet mintát venni az adatokból Excelben

Hogyan lehet mintát venni az adatokból Excelben

Az Excel Mintavételi eszközével véletlenszerűen kiválaszthat elemeket egy adatkészletből vagy választhat minden n-edik elemet. Ismerje meg, hogyan használhatja ezt a hasznos funkciót az adatelemzéshez!

10 klassz trükk a Microsoft Word 2019 programmal

10 klassz trükk a Microsoft Word 2019 programmal

Fedezze fel a Microsoft Word 2019 legjobb trükkjeit, amelyek segítenek a hatékonyabb munkavégzésben. Tudd meg, hogyan használhatod ki a program funkcióit!

Bekezdések igazítása és behúzása a Word 2019-ben

Bekezdések igazítása és behúzása a Word 2019-ben

A Word 2019-ben a bekezdések igazítása és behúzása kulcsfontosságú a dokumentumok megfelelő megjelenítéséhez. Ismerje meg a formázási lehetőségeket és tippeket a hatékonyabb munkához.

Az Excel 2019 Solver használata

Az Excel 2019 Solver használata

Fedezze fel, hogyan használhatja az Excel 2019 Solver bővítményt a komplex problémák megoldására. A célcella, változócellák és kényszerek beállítása lépésről lépésre.

Dinamikus elemek hozzáadásához használja a Word 2019 mezőit

Dinamikus elemek hozzáadásához használja a Word 2019 mezőit

A Word lehetővé teszi dinamikus elemek hozzáadását a dokumentumhoz. Fedezze fel, hogyan lehet különböző mezőket használni a Word programban a dinamikus tartalom létrehozásához.

Oszloptípusok a SharePoint 2010-ben

Oszloptípusok a SharePoint 2010-ben

A SharePoint 2010 oszlopai az adatok tárolására szolgálnak. Fedezze fel a különböző oszlop típusokat és azok alkalmazását a SharePoint rendszeren belül.

A nem kívánt szöveg eltávolítása a Word 2013-ban

A nem kívánt szöveg eltávolítása a Word 2013-ban

A Word 2013 szövegtörlésének képessége kulcsfontosságú, legyen szó szövegalkotásról vagy törlésről. Ismerje meg a hatékony szövegtörlési módszereket!

Hogyan készítsünk fotóalbumot a PowerPoint 2016-ban

Hogyan készítsünk fotóalbumot a PowerPoint 2016-ban

A fotóalbum funkció a PowerPoint 2016-ban lehetővé teszi, hogy egyszerre több fényképet illesszen be egy prezentációba, megkönnyítve ezzel a többszörös képek kezelését.