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:
NaviKā Vesels skaitlisPriekši = 1Uz6
Šūnas (i, 1). Vērtība = 100
Nākamaisi
Rezultāts, noklikšķinot uz komandas pogas lapā:
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 ģeneratorsNaviKā Vesels skaitlis, jKā 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ā:
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:
NavcKā Vesels skaitlis, iKā Vesels skaitlis, jKā Vesels skaitlisPriekš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 ExcelNaviKāVesels 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ā:
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ā.
3. Novietojiet a komandu pogu darblapā un pievienojiet šādas koda rindiņas:
NaviKāVesels skaitlisi = 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ā:
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.
Doties uz nākamo nodaļu: Makro kļūdas