/ / Excel VBA Loop

Excel VBA Loop

Single Loop | Double Loop | Triple Loop | Tee samalla silmukka

Looping on yksi tehokkaimmista ohjelmointitekniikoista. silmukka sisään Excel VBA voit silmukoida solualueen läpi vain muutamalla koodilinjalla.

Single Loop

Voit käyttää yksittäistä silmukkaa silmukan läpi yksidimensionaaliseen solualueeseen.

Aseta komentopainike laskentatauluun ja lisää seuraavat koodiluokat:

Dim i As Integer

For i = 1 To 6
    Cells(i, 1).Value = 100
Next i

Tulos, kun napsautat arkin komentopainiketta:

Single Loop Excel VBA: ssa

Selitys: Koodilinjojen For ja Next välillä suoritetaan kuusi kertaa. I = 1, Excel VBA syöttää arvoon 100 soluun rivin 1 ja sarakkeen 1 leikkauspisteessä. Kun Excel VBA saavuttaa seuraavan i: n, se lisää i: n arvoa 1 ja hyppää takaisin For-käskyyn. I = 2, Excel VBA syöttää arvoon 100 soluun rivin 2 ja sarakkeen 1 risteyksessä jne.

Huomaa: on hyvä käytäntö aina sisennyttää (välilehti) koodi sanojen For ja Next välillä. Tämä helpottaa koodin lukemista.

Double Loop

Voit käyttää kaksinkertaista silmukkaa silmukan läpi kahdenulotteisen solualueen läpi.

Aseta komentopainike laskentatauluun ja lisää seuraavat koodiluokat:

Dim i As Integer, j As Integer

For i = 1 To 6
    For j = 1 To 2
        Cells(i, j).Value = 100
    Next j
Next i

Tulos, kun napsautat arkin komentopainiketta:

Double Loop Excel VBA: ssa

Selitys: I = 1 ja j = 1, Excel VBA syöttää arvoon 100 soluun rivin 1 ja sarakkeen 1 leikkauspisteessä. Kun Excel VBA saavuttaa seuraavan j: n, se lisää j: n arvoa 1 ja hyppää takaisin For -julkaisulle. I = 1 ja j = 2, Excel VBA syöttää arvoon 100 soluun rivin 1 ja sarakkeen 2 leikkauspisteessä. Seuraavaksi Excel VBA ohittaa seuraavan j koska j kulkee vain 1: stä 2: een. Kun Excel VBA saavuttaa seuraavan i , se lisää i: n arvoa 1 ja hyppää takaisin For i -lausumaan. I = 2 ja j = 1, Excel VBA syöttää arvoon 100 soluun rivin 2 ja sarakkeen 1 risteyksessä jne.

Triple Loop

Voit käyttää kolminkertaista silmukkaa silmukan läpi kahden ulottuvuuden alueille useissa Excel-laskentataulukoissa.

Aseta komentopainike laskentatauluun ja lisää seuraavat koodiluokat:

Dim c As Integer, i As Integer, j As Integer

For c = 1 To 3
    For i = 1 To 6
        For j = 1 To 2
            Worksheets(c).Cells(i, j).Value = 100
        Next j
    Next i
Next c

Selitys: Ainoa muutos verrattuna kaksinkertaisen silmukan koodiin on, että olemme lisänneet vielä yhden silmukan ja lisäsyötyökaluja (c). solujen edessä saadaksesi kaksiulotteisen alueen ensimmäiselle arkille c = 1, toinen arkin c = 2 ja kolmas arkki c = 3. Lataa Excel-tiedosto nähdäksesi tämän tuloksen.

Tee samalla silmukka

For Next-silmukan lisäksi Excel VBA: ssa on muita silmukoita. Esimerkiksi Do While Loop. Kohdan Do While ja Loop välissä oleva koodi toistetaan niin kauan kuin osa Do Whilein jälkeen on totta.

1. Aseta komentopainike laskentatauluun ja lisää seuraavat koodilinjat:

Dim i As Integer
i = 1

Do While i < 6
    Cells(i, 1).Value = 20
    i = i + 1
Loop

Tulos, kun napsautat arkin komentopainiketta:

Tee samalla silmukka

Selitys: niin kauan kuin i on pienempi kuin 6, Excel VBA tulee arvo 20 soluun risteyksessä rivin i ja sarakkeen 1 ja kasvattaa i: tä 1: llä Excel VBA (ja muita ohjelmointikieliä), symboli "=" tarkoittaa tulee. Se ei tarkoita samaa. Joten i = i + 1 tarkoittaa, että i: stä tulee i + 1. Toisin sanoen: ottakaa i: n nykyinen arvo ja lisäät siihen 1. Esimerkiksi, jos i = 1, i tulee 1 + 1 = 2. Tämän seurauksena arvo 20 sijoitetaan sarakkeeseen A viisi kertaa (ei kuusi, koska Excel VBA pysähtyy, kun i on 6).

2. Syötä joitain sarakkeita sarakkeeseen A.

Mikä tahansa rivien määrä

3. Aseta komentopainike laskentatauluun ja lisää seuraavat koodiluokat:

Dim i As Integer
i = 1

Do While Cells(i, 1).Value <> ""
    Cells(i, 2).Value = Cells(i, 1).Value + 10
    i = i + 1
Loop

Tulos, kun napsautat arkin komentopainiketta:

Advanced Do While Loop

Selitys: niin kauan kuin solut (i, 1).Arvo ei ole tyhjä (<> tarkoittaa ei ole yhtä suuri), Excel VBA syöttää arvon soluun rivin i ja sarakkeen 2 leikkauspisteessä eli 10 on suurempi kuin rivin i ja sarakkeen 1 leikkauspisteessä solussa oleva arvo Excel VBA pysähtyy, kun i on 7, koska solut (7, 1). Arvo on tyhjä. Tämä on loistava tapa silmukoittaa minkä tahansa rivien määrää laskentataulukossa.

Lue myös: