Vba

Silmukka

Loop

Yksi silmukka | Kaksinkertainen silmukka | Kolminkertainen silmukka | Tee Silmukalla





Looping on yksi tehokkaimmista ohjelmointitekniikoista. A silmukka sisään Excel VBA voit selata solualueen läpi vain muutamalla koodirivillä.

Yksi silmukka

Voit käyttää yhtä silmukkaa kiertämään yksiulotteisen solualueen läpi.





Aseta a komentopainiketta laskentataulukkoon ja lisää seuraavat koodirivit:

Ei mitääniKuten Kokonaisluku

Varteni = 1Vastaanottaja6
Solut (i, 1) Arvo = 100
Seuraavai

Tulos, kun napsautat taulukon komentopainiketta:



Yksi silmukka Excel VBA: ssa

Selitys: Koodirivit For ja Next suoritetaan kuusi kertaa. Jos i = 1, Excel VBA syöttää arvon 100 soluun rivin 1 ja sarakkeen 1 leikkauspisteessä. Kun Excel VBA saavuttaa seuraavan i, se lisää i: tä 1: llä ja hyppää takaisin For -lauseeseen. Jos i = 2, Excel VBA syöttää arvon 100 soluun rivin 2 ja sarakkeen 1 leikkauspisteessä jne.

Huomaa: on hyvä käytäntö lisätä sisennys (välilehti) aina sanojen For ja Next väliin. Tämä helpottaa koodin lukemista.

Kaksinkertainen silmukka

Voit käyttää kaksoissilmukkaa kiertämään kaksiulotteisen solualueen läpi.

Aseta a komentopainiketta laskentataulukkoon ja lisää seuraavat koodirivit:

1-100 satunnaislukugeneraattoria
Ei mitääniKuten Kokonaisluku, jKuten Kokonaisluku

Varteni = 1Vastaanottaja6
Vartenj = 1Vastaanottaja2
Solut (i, j) Arvo = 100
Seuraavaj
Seuraavai

Tulos, kun napsautat taulukon komentopainiketta:

Double Loop Excel VBA: ssa

Selitys: Jos i = 1 ja j = 1, Excel VBA syöttää arvon 100 soluun rivin 1 ja sarakkeen 1 leikkauspisteessä. Kun Excel VBA saavuttaa seuraavan j, se kasvaa j: llä 1: llä ja hyppää takaisin For j -lauseeseen . Jos i = 1 ja j = 2, Excel VBA syöttää arvon 100 soluun rivin 1 ja sarakkeen 2 leikkauspisteessä. Seuraavaksi Excel VBA jättää huomiotta seuraavan j, koska j toimii vain välillä 1 - 2. Kun Excel VBA saavuttaa seuraavan i , se lisää i: tä 1: llä ja hyppää takaisin For i -lauseeseen. Jos i = 2 ja j = 1, Excel VBA syöttää arvon 100 soluun rivin 2 ja sarakkeen 1 leikkauspisteessä jne.

Kolminkertainen silmukka

Voit käyttää kolmoissilmukkaa selataksesi kaksiulotteisia alueita useissa Excel-laskentataulukoissa.

Aseta a komentopainiketta laskentataulukkoon ja lisää seuraavat koodirivit:

Ei mitääncKuten Kokonaisluku, iKuten Kokonaisluku, jKuten Kokonaisluku

Vartenc = 1Vastaanottaja3
Varteni = 1Vastaanottaja6
Vartenj = 1Vastaanottaja2
Laskentataulukot (c). Solut (i, j). Arvo = 100
Seuraavaj
Seuraavai
Seuraavac

Selitys: Ainoa muutos kaksinkertaisen silmukan koodiin verrattuna on, että olemme lisänneet yhden silmukan lisää ja lisääneet laskentataulukoita (c). Solujen edessä saadaksesi kaksiulotteisen alueen ensimmäisen arkin kohdalle c = 1, toisen arkin c = 2 ja kolmannen arkin c = 3. Lataa Excel-tiedosto nähdäksesi tämän tuloksen.

Tee Silmukalla

For Next -silmukan lisäksi Excel VBA: ssa on muitakin silmukoita. Esimerkiksi Do while Loop. Do While- ja Loop -väliin sijoitettu koodi toistetaan niin kauan kuin Do Do After -osa on totta.

1. Aseta a komentopainiketta laskentataulukkoon ja lisää seuraavat koodirivit:

miten soveltaa solutyyliä Excelissä
Ei mitääniKutenKokonaisluku
i = 1

Tehdä Sillä aikaai<6
Solut (i, 1) Arvo = 20
i = i + 1
Silmukka

Tulos, kun napsautat taulukon komentopainiketta:

Tee Silmukalla

Selitys: niin kauan kuin i on pienempi kuin 6, Excel VBA syöttää arvon 20 soluun rivin i ja sarakkeen 1 leikkauspisteessä ja lisäyksiä i yhdellä. Excel VBA: ssa (ja muilla ohjelmointikielillä) symboli '= 'tarkoittaa tulee. Se ei tarkoita tasavertaista. Joten i = i + 1 tarkoittaa, että i tulee i + 1. Toisin sanoen: ota i: n nykyarvo ja lisää siihen 1. Jos esimerkiksi i = 1, i: stä 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. Kirjoita joitakin numeroita sarakkeeseen A.

Mikä tahansa määrä rivejä

3. Aseta a komentopainiketta laskentataulukkoon ja lisää seuraavat koodirivit:

Ei mitääniKutenKokonaisluku
i = 1

Tehdä Sillä aikaaSolut (i, 1). Arvo ''
Solut (i, 2) Arvo = Solut (i, 1) Arvo + 10
i = i + 1
Silmukka

Tulos, kun napsautat taulukon komentopainiketta:

Kehittynyt tee samalla silmukka

Selitys: niin kauan kuin solut (i, 1). Arvo ei ole tyhjä (tarkoittaa, että se ei ole yhtä suuri), Excel VBA syöttää arvon soluun rivin i ja sarakkeen 2 leikkauspisteessä, joka on 10 korkeampi kuin solu rivin i ja sarakkeen 1 leikkauspisteessä. Excel VBA pysähtyy, kun i on 7, koska solut (7, 1). Arvo on tyhjä. Tämä on loistava tapa selata laskentataulukon minkä tahansa määrän rivejä.

1/11 valmis! Lue lisää silmukoista>
Siirry seuraavaan lukuun: Makrovirheet



^