Vba

Cilpa

Loop

Viena cilpa | Dubultā cilpa | Trīskāršā cilpa | Darīt, kamēr cilpa





Looping ir viena no visspēcīgākajām programmēšanas metodēm. A cilpa iekšā Excel VBA ļauj cilpot virkni šūnu ar dažām kodu rindām.

Viena cilpa

Jūs varat izmantot vienu cilpu, lai izietu cauri viendimensiju šūnu diapazonam.





Novietojiet a komandu pogu darblapā un pievienojiet šādas koda rindiņas:

Navi Vesels skaitlis

Priekši = 1Uz6
Šūnas (i, 1). Vērtība = 100
Nākamaisi

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



Viena cilpa programmā Excel VBA

Paskaidrojums: koda rindiņas starp For un Next tiks izpildītas sešas reizes. Ja i = 1, Excel VBA ievada vērtību 100 šūnā 1. rindas un 1. kolonnas krustojumā. Kad Excel VBA sasniedz Next i, tas palielina i ar 1 un pāriet atpakaļ uz priekšrakstu. Ja i = 2, Excel VBA ievada vērtību 100 šūnā 2. rindas un 1. kolonnas krustojumā utt.

Piezīme. Laba prakse ir vienmēr atkāpties (tabulēt) kodu starp vārdiem For un Next. Tas atvieglo jūsu koda lasīšanu.

Dubultā cilpa

Lai izmantotu divdimensiju šūnu diapazonu, varat izmantot dubultu cilpu.

Novietojiet a komandu pogu darblapā un pievienojiet šādas koda rindiņas:

1-100 nejaušo skaitļu ģenerators
Navi Vesels skaitlis, j Vesels skaitlis

Priekši = 1Uz6
Priekšj = 1Uz2
Šūnas (i, j). Vērtība = 100
Nākamaisj
Nākamaisi

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

Dubultā cilpa programmā Excel VBA

Paskaidrojums: ja i = 1 un j = 1, Excel VBA ievada vērtību 100 šūnā 1. rindas un 1. kolonnas krustojumā. Kad Excel VBA sasniedz Next j, tas palielina j ar 1 un pāriet atpakaļ uz priekšrakstu j . Ja i = 1 un j = 2, Excel VBA ievada vērtību 100 šūnā 1. rindas un 2. kolonnas krustojumā. Tālāk Excel VBA ignorē Next j, jo j darbojas tikai no 1 līdz 2. Kad Excel VBA sasniedz Next i , tas palielina i ar 1 un atgriežas pie paziņojuma For i. Ja i = 2 un j = 1, Excel VBA ievada vērtību 100 šūnā 2. rindas un 1. kolonnas krustojumā utt.

Trīskāršā cilpa

Varat izmantot trīskāršu cilpu, lai pārvietotos pa divdimensiju diapazoniem vairākās Excel darblapās.

Novietojiet a komandu pogu darblapā un pievienojiet šādas koda rindiņas:

Navc Vesels skaitlis, i Vesels skaitlis, j Vesels skaitlis

Priekšc = 1Uz3
Priekši = 1Uz6
Priekšj = 1Uz2
Darblapas (c). Šūnas (i, j). Vērtība = 100
Nākamaisj
Nākamaisi
Nākamaisc

Paskaidrojums: Vienīgās izmaiņas, kas veiktas salīdzinājumā ar dubultās cilpas kodu, ir tas, ka esam pievienojuši vēl vienu cilpu un pievienojušas darblapas (c). Šūnu priekšā, lai iegūtu divdimensiju diapazonu pirmajā lapā c = 1, otro lapu c = 2 un trešo lapu c = 3. Lejupielādējiet Excel failu, lai redzētu šo rezultātu.

Darīt, kamēr cilpa

Papildus cilnei Nākamajai programmai Excel VBA ir arī citas cilpas. Piemēram, cikls “Darīt, kamēr”. Kods, kas ievietots starp Do Do un Loop, tiks atkārtots, kamēr daļa pēc Do Do ir patiesa.

1. Novietojiet a komandu pogu darblapā un pievienojiet šādas koda rindiņas:

kā reizināt skaitļus Excel
NaviVesels skaitlis
i = 1

Vai Kamēri<6
Šūnas (i, 1). Vērtība = 20
i = i + 1
Cilpa

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

Darīt, kamēr cilpa

Paskaidrojums: ja vien i ir mazāks par 6, Excel VBA šūnā, kas atrodas rindas i un 1. ailes krustojumā, ievada vērtību 20 un palielina i par 1. Programmā 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 i kļūst par i + 1. Citiem vārdiem sakot: ņemiet i pašreizējo vērtību un pievienojiet tai 1. Piemēram, ja i = 1, i kļūst par 1 + 1 = 2. Rezultātā vērtība 20 tiks ievietota A slejā piecas reizes (nevis sešas, jo Excel VBA apstājas, kad i ir 6).

2. Ievadiet dažus skaitļus A slejā.

Jebkurš rindu skaits

3. Novietojiet a komandu pogu darblapā un pievienojiet šādas koda rindiņas:

NaviVesels skaitlis
i = 1

Vai KamērŠūnas (i, 1). Vērtība '
Šūnas (i, 2). Vērtība = šūnas (i, 1). Vērtība + 10
i = i + 1
Cilpa

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

Uzlabotā darbība cikla laikā

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

1/11 Pabeigts! Uzziniet daudz vairāk par cilpām>
Doties uz nākamo nodaļu: Makro kļūdas



^