Kitas „Excel VBA“ ciklas - pradedančiųjų vadovas su pavyzdžiais

VBA ciklas naudojamas, kai tą pačią užduotį reikia atlikti kelis kartus, kol įvykdoma sąlyga (arba kol sąlyga yra teisinga).

Šioje pamokoje sužinosite, kaip naudoti „For Next Loop“ programoje „Excel VBA“.

Jei jus domina lengvas VBA mokymasis, patikrinkite mano Internetinis „Excel VBA“ mokymas.

„FOR NEXT Loop“ naudojimas „Excel VBA“

„For Next“ kilpa veikia paleidus ciklą nurodytą skaičių kartų.

Pavyzdžiui, jei paprašysiu rankiniu būdu pridėti sveikus skaičius nuo 1 iki 10, pridėsite pirmuosius du skaičius, tada prie rezultato pridėsite trečiąjį skaičių, tada prie rezultato pridėsite ketvirtąjį skaičių ir taip toliau …

Ar ne?

Ta pati logika naudojama „VBA“ cikle „Kitas“.

Jūs nurodote, kiek kartų ciklas turi būti paleistas, taip pat nurodote, ką norite, kad kodas atliktų kiekvieną kartą, kai ciklas paleidžiamas.

Čia yra „For Next loop“ formatas, kurį turite naudoti VBA, kad pridėtumėte pirmuosius 10 sveikųjų skaičių.

Jei i = nuo 1 iki 10 [prie rezultato pridėkite i -ąjį teigiamą sveikąjį skaičių] Kitas i

Dabar pažvelkime į kelis „For Next“ kilpos naudojimo pavyzdžius.

1 pavyzdys: pirmųjų 10 teigiamų sveikųjų skaičių pridėjimas

Žemiau yra kodas, kuris pridės pirmuosius 10 teigiamų sveikųjų skaičių naudodami ciklą „Kitas“. Tada jis parodys pranešimų laukelį, kuriame bus nurodyta šių skaičių suma.

Sub AddNumbers () Dim Iš viso kaip sveikasis skaičius Skaičiuoti kaip sveikasis skaičius Iš viso = 0 Skaičiuoti = 1 iki 10 Iš viso = Iš viso + Skaičiuoti Kitas skaičius MsgBox Iš viso pabaigos

Šiame kode, prieš patekimą į „For Next“ ciklą, „Total“ vertė yra nustatyta į 0.

Kai jis patenka į kilpą, jis turi bendrą vertę po kiekvienos kilpos. Taigi po pirmosios kilpos, kai skaitiklis yra 1, „bendra“ vertė tampa 1, o po antrosios - 3 (1+2) ir pan.

Ir galiausiai, kai ciklas baigiasi ir kai „Total“ turi pirmųjų 10 teigiamų sveikųjų skaičių sumą, „MsgBox“ tiesiog parodo rezultatą pranešimų laukelyje.

Spustelėkite čia, jei norite atsisiųsti pavyzdinį failą

2 pavyzdys: pirmųjų 5 lyginių teigiamų sveikųjų skaičių pridėjimas

Norėdami susumuoti pirmuosius penkis lygius teigiamus sveikuosius skaičius (t. Y. 2,4,6,8 ir 10), jums reikia panašaus kodo su sąlyga, kad būtų atsižvelgiama tik į lyginius skaičius ir nepaisoma nelyginių skaičių.

Čia yra kodas, kuris tai padarys:

Sub AddEvenNumbers () Dim Iš viso kaip sveikasis skaičius Skaičiuoti kaip sveikasis skaičius Iš viso = 0 Skaičiuoti = 2 iki 10 2 veiksmas Iš viso = Iš viso + Skaičiuoti Kitas skaičius MsgBox Iš viso pabaigos Sub

Atminkite, kad skaičiavimo vertę pradėjome nuo 2, o sintaksėje „For“ taip pat naudojome 2 veiksmą.

2 veiksmas nurodys kodui kiekvieną kartą paleidžiant kilpą padidinti „Count“ reikšmę 2. Taigi skaičiavimo vertė prasideda nuo 2, o tada, kai atsiranda ciklas, tampa 4, 6, 8 ir 10.

PASTABA: Kitas būdas tai padaryti gali būti paleisti kilpą nuo 1 iki 10 ir ciklo viduje patikrinti, ar skaičius yra lyginis ar nelyginis. Tačiau šiuo atveju „Step“ naudojimas yra veiksmingesnis būdas, nes nereikia ciklo paleisti 10 kartų, o tik 5 kartus.

Spustelėkite čia, jei norite atsisiųsti pavyzdinį failą.

3 pavyzdys: gaukite skaitinę dalį iš raidinės ir skaitmeninės eilutės

„For Next“ kilpa taip pat gali būti naudojama norint peržvelgti kiekvieną eilutės simbolį.

Pvz., Jei turite raidinių ir skaitinių eilučių sąrašą, galite naudoti ciklą „Kitas“, kad iš jo išgautumėte skaičius (kaip parodyta žemiau):

Čia yra kodas, sukuriantis pasirinktinę funkciją VBA, kurią galima naudoti kaip ir bet kurią kitą darbalapio funkciją.

Jis išgauna skaitinę dalį iš raidinės ir skaitinės eilutės.

Funkcija GETNUMERIC (Cl kaip diapazonas) Dim i kaip sveikasis skaičius Rezultatas ilgas, kai i = 1 iki Len (Cl), jei yra skaitmeninis (vidurys (Cl, i, 1)), tada rezultatas = rezultatas ir vidurys (Cl, i, 1) pabaiga If Next i GetNumeric = Rezultato pabaigos funkcija

Šiame kode ciklo vykdymo kartų skaičius priklauso nuo raidinės ir skaitmeninės eilutės ilgio (ji naudoja LEN funkciją, kad surastų eilutės ilgį).

Šią funkciją turite įdėti į modulio kodo langą, tada galėsite ją naudoti kaip ir bet kurią kitą darbalapio funkciją.

Spustelėkite čia, jei norite atsisiųsti pavyzdinį failą.

4 pavyzdys: atsitiktinių skaičių gavimas pasirinktame diapazone

Tarkime, kad norite greitai įvesti atsitiktinius skaičius pasirinktose ląstelėse, čia yra kodas, kuris tai padarys.

Sub RandomNumbers () Dim MyRange kaip diapazonas Dim i As Integer, j As Integer Set MyRange = Selection For i = 1 To MyRange.Columns.Count For j = 1 To MyRange.Rows.Count MyRange.Cells (j, i) = Rnd Kitas j Kitas i Pabaiga Sub

Tai yra įdėtos „For Next“ kilpos pavyzdys, kai „For“ cikle naudojama „For“ kilpa.

Tarkime, kad pasirenkate 10 eilučių ir 4 stulpelių, i reikšmė svyruoja nuo 1 iki 4, o j - nuo 1 iki 10.

Kai vykdoma pirmoji „For“ kilpa, i reikšmė yra 1. Tada ji pereina į antrąją „For“ ciklą, kuri eina 10 kartų (kiekvienai eilutei).

Kai antroji „For“ ciklas buvo įvykdytas 10 kartų, jis grįžta į pirmąją „For“ ciklą, kur dabar i reikšmė tampa 2. Vėlgi kita „For“ kilpa vykdoma 10 kartų.

Taip veikia įdėta „For Next“ kilpa.

Spustelėkite čia, jei norite atsisiųsti pavyzdinį failą.

Jums taip pat gali patikti šios „Excel VBA“ pamokos:

  • Darbas su ląstelėmis ir diapazonais „Excel VBA“.
  • Darbas su darbalapiais „Excel VBA“.
  • Darbas su darbaknygėmis naudojant VBA.
  • Naudojant IF tada kitus teiginius VBA.
  • „Excel VBA Select Case“.
  • Naudotojo nustatytos funkcijos kūrimas „Excel“.
  • „Excel VBA Events“ - lengvas (ir išsamus) vadovas
  • Kaip įrašyti makrokomandą „Excel“.
  • Kaip paleisti makrokomandą „Excel“.
  • Kaip sukurti priedą „Excel“.
  • Kaip išsaugoti ir pakartotinai naudoti makrokomandą naudojant „Excel“ asmeninės makrokomandos darbaknygę.
  • Naudingi „Excel“ makrokomandų pavyzdžiai pradedantiesiems.
  • „InStr“ funkcijos naudojimas VBA.

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave