/ / Excel VBA petlja

Excel VBA petlja

Jedna petlja | Dvostruka petlja | Triple Loop | Učiniti dok je petlja

Looping je jedna od najmoćnijih programskih tehnika. petlja u Excel VBA omogućuje vam da prođete niz stanica s samo nekoliko redaka kodova.

Jedna petlja

Možete koristiti jednu petlju za petlju kroz jednodimenzionalni raspon ćelija.

Stavite gumb naredbe na radni list i dodajte sljedeće retke koda:

Dim i As Integer

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

Rezultat kada kliknete gumb naredbe na listu:

Jedna petlja u Excelu VBA

Obrazloženje: Kodne linije između For i Next bit će izvršene šest puta. Za i = 1, Excel VBA ulazi u vrijednost 100 u ćeliju na presjeku reda 1 i stupca 1. Kada Excel VBA dosegne Sljedeće i, povećava se i s 1 i vraća natrag na izjavu za. Za i = 2, Excel VBA ulazi u vrijednost 100 u ćeliju na presjeku reda 2 i stupca 1 itd.

Napomena: Dobro je prakticirati uvijek uvlačenje (kartice) koda između riječi For i Next. To olakšava čitanje vašeg koda.

Dvostruka petlja

Možete koristiti dvostruku petlju za petlju kroz dvodimenzionalni raspon ćelija.

Stavite gumb naredbe na radni list i dodajte sljedeće retke koda:

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

Rezultat kada kliknete gumb naredbe na listu:

Dvostruka petlja u programu Excel VBA

Obrazloženje: Za i = 1 i j = 1, Excel VBA unosi vrijednost 100 u ćeliju na presjeku reda 1 i stupca 1. Kada Excel VBA dostigne Sljedeće j, povećava se j s 1 i vraća se na izjavu For j. Za i = 1 i j = 2, Excel VBA unosi vrijednost 100 u ćeliju na presjeku reda 1 i stupca 2. Zatim, Excel VBA zanemaruje Sljedeći j jer j samo traje od 1 do 2. Kada Excel VBA dosegne Next i , povećava se s 1 i skreće natrag na izjavu For i. Za i = 2 i j = 1, Excel VBA ulazi u vrijednost 100 u ćeliju na presjeku reda 2 i stupca 1 itd.

Triple Loop

Možete koristiti trostruku petlju za petlje kroz dvodimenzionalne raspone na više Excel listova.

Stavite gumb naredbe na radni list i dodajte sljedeće retke koda:

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

Obrazloženje: Jedina promjena u usporedbi s kodom za dvostruku petlju jest da smo dodali još jednu petlju i dodali Radne listove (c). ispred ćelija kako bi dobili dvodimenzionalni raspon na prvom listu za c = 1, drugi list za c = 2 i treći list za c = 3. Preuzmite Excel datoteku da biste vidjeli ovaj rezultat.

Učiniti dok je petlja

Osim for Next petlje, postoje i druge petlje u programu Excel VBA. Na primjer, Do While Loop. Kôd koji se nalazi između Do While i Loop će se ponoviti sve dok je dio nakon Do While istinit.

1. Stavite gumb naredbe na radni list i dodajte sljedeće retke koda:

Dim i As Integer
i = 1

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

Rezultat kada kliknete gumb naredbe na listu:

Učiniti dok je petlja

Obrazloženje: dok je i niži od 6, Excel VBA ulazi u vrijednost 20 u ćeliju na križanju reda i i stupca 1 i povećava ih za 1. U programu Excel VBA (i na drugim programskim jezicima) simbol "=" znači postaje. To ne znači jednako. Dakle, i = i + 1 znači da i postaje i + 1. Drugim riječima: uzmite sadašnju vrijednost i dodajte 1. Na primjer, ako je i = 1, i postaje 1 + 1 = 2. Kao rezultat toga, vrijednost 20 će biti stavljena u stupac A pet puta (ne šest jer Excel VBA prestaje kada sam jednak 6).

2. Unesite neke brojeve u stupac A.

Bilo koji broj redaka

3. Stavite gumb naredbe na radni list i dodajte sljedeće retke koda:

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

Rezultat kada kliknete gumb naredbe na listu:

Napredno učiniti dok je petlja

Objašnjenje: sve dok stanice (i, 1).Vrijednost nije prazna (Excel znači da vrijednost VBA ne unosi vrijednost u ćeliju na sjecištu reda i i stupca 2, tj. 10 veća od vrijednosti u ćeliji na sjecištu reda i i stupca 1 Excel VBA prestaje kada je jednak 7 jer su ćelije (7, 1). Vrijednost je prazna. Ovo je odličan način da se proširi kroz bilo koji broj redaka na radnom listu.

Također pročitajte: