/ / Excel VBA cilpa

Excel VBA cilpa

Viena cilpa | Divkāršā cilpa | Trīsvietīga cilpa | Vai esi cikls?

Looping ir viena no spēcīgākajām programmēšanas metodēm. A cilpa in Excel VBA ļauj jums izveidot cilpas ar virkni šūnu, izmantojot tikai dažas koda līnijas.

Viena cilpa

Jūs varat izmantot vienotu cilpu, lai izveidotu cilpu, izmantojot vienfunkciju šūnu diapazonu.

Ievietojiet komandas pogu savā darblapā un pievienojiet šādas koda rindiņas:

Dim i As Integer

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

Rezultāts, noklikšķinot uz komandas pogas lapā:

Viena cilpa programmā Excel VBA

Paskaidrojums: Kodu līnijas starp For un Next tiks izpildītas sešas reizes. Ja i = 1, Excel VBA ievada vērtību 100 šūnā rindas 1 un 1. kolonnas krustpunktā. Kad Excel VBA sasniedz Next i, tas palielina i ar 1 un lēcienu atpakaļ uz paziņojumu. Ja i = 2, Excel VBA ievada vērtību 100 šūnā pie 2. un 1. slejas krustošanās uc

Piezīme: laba prakse vienmēr ir ievilkt (cilnes) kodu starp vārdiem For un Next. Tas padara jūsu kodu vieglāk lasāmu.

Divkāršā cilpa

Divu dimensiju šūnu diapazonā varat izmantot divkāršu cilpu, lai izveidotu cilpu.

Ievietojiet komandas pogu savā darblapā un pievienojiet šādas koda rindiņas:

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

Rezultāts, noklikšķinot uz komandas pogas lapā:

Divkāršā cilpa programmā Excel VBA

Paskaidrojums: Ja i = 1 un j = 1, Excel VBA ievada vērtību 100 šūnā rindas 1 un 1. kolonnas krustpunktā. Kad Excel VBA sasniedz nākamo j, tas palielina j ar 1 un lēcienu atpakaļ uz paziņojumu For j. Ja i = 1 un j = 2, Excel VBA ievada vērtību 100 šūnā rindas 1 un 2. kolonnas krustpunktā. Tālāk Excel VBA ignorē Next j, jo j tikai darbojas no 1 līdz 2. Kad Excel VBA sasniedz Next i , tas palielina i ar 1 un lec uz "For i" paziņojumu. Ja i = 2 un j = 1, Excel VBA ievada vērtību 100 šūnā krustpunktā 2. un 1. kolonnā utt.

Trīsvietīga cilpa

Varat izmantot trīskāršu cilpu, lai izveidotu cilpu, izmantojot divdimensiju diapazonus vairākās Excel darblapās.

Ievietojiet komandas pogu savā darblapā un pievienojiet šādas koda rindiņas:

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

Paskaidrojums: Vienīgās izmaiņas, salīdzinot ar divkāršās cilpas kodu, ir tādas, ka esam pievienojuši vēl vienu cilpu un pievienotās darblapas (c). priekš Cells, lai iegūtu divdimensiju diapazonu pirmajā lapā c = 1, otrā lapa c = 2 un trešā lapa c = 3. Lejupielādēt Excel failu, lai redzētu šo rezultātu.

Vai esi cikls?

Papildus nākamajai cilpai Excel VBA ir arī citas cilpas. Piemēram, Do Loop Loop. Kods, kas atrodas starp Do Kaut un Cikls, tiks atkārtota tik ilgi, kamēr daļa pēc Do Un ir patiess.

1. Ievietojiet komandas pogu savā darblapā un pievienojiet šādas koda rindiņas:

Dim i As Integer
i = 1

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

Rezultāts, noklikšķinot uz komandas pogas lapā:

Vai esi cikls?

Paskaidrojums: tik ilgi, kamēr i ir mazāks par 6, Excel VBA ievada vērtību 20 šūnā rindas i un 1. kolonnas krustojumā un palielina i ar 1. Excel VBA (un citās programmēšanas valodās) simbols "=" nozīmē kļūst Tas nenozīmē vienādu. Tātad i = i + 1 nozīmē, ka es kļūstu i + 1. Citiem vārdiem: ņem pašreizējo i vērtību un pievieno 1 tam. Piemēram, ja i = 1, i kļūst 1 + 1 = 2. Tā rezultātā vērtība 20 tiks ievietota kolonnā piecas reizes (nevis seši, jo Excel VBA apstājas, kad es ir vienāds ar 6).

2. Ievadiet dažus ciparus A slejā.

Jebkura rindu skaits

3. Ievietojiet komandas pogu savā darblapā un pievienojiet šādas koda rindiņas:

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

Rezultāts, noklikšķinot uz komandas pogas lapā:

Izvērstā Do Cikls

Paskaidrojums: kamēr šūnas (i, 1).Vērtība nav tukša (<> nozīmē nav vienāds ar), Excel VBA ievada vērtību šūnā rindas i un 2. kolonnas krustojumā, kas ir par 10 augstāka nekā vērtība šūnā rindas i un 1. kolonnas krustojumā Excel VBA apstājas, kad es vienādos ar 7, jo šūnas (7, 1). Vērtība ir tukša. Tas ir lielisks veids, kā cilpa darboties ar jebkuru rindu skaitu darblapā.

Lasīt arī: