VBA kitam - „Excel VBA“ naudojimo vadovas kitam teiginiui

„Excel VBA“ kitai grandinei

„VBA For Next“ ciklas yra kilpa, naudojama tarp visų programavimo kalbų. Šioje cikle yra „for“ sakinio kriterijus, kuriam kodas cikle sukasi, kol bus pasiektas kriterijus ir kai bus pasiektas kriterijus, kitas nurodymas nukreipia procedūrą kitam kodo žingsniui.

„For Next“ kilpa yra viena iš tų kilpų, kuri naudojama labai dažnai nei kitos VBA kodavimo kilpos. Kilpos padės mums pakartoti tos pačios rūšies užduotis nurodytoms ląstelėms, kol būsena bus TIESA.

FOR LOOP perkelia langelių diapazoną ir atlieka konkrečią užduotį, kol sąlyga bus TIESA. Pvz., Jei norite pereiti per pirmuosius 10 langelių ir įterpti serijos numerius, padidintus 1, galite naudoti FOR NEXT kilpą.

Šiai kilpai reikia kintamojo, kad kilpa būtų vykdoma. Naudodami šį kintamąjį, galime dinamiškai nurodyti ląsteles.

Tai apima tris parametrus.

For Statement = Pradinis taškas iki pabaigos taško (Atlikite kai kurias užduotis) Kitas teiginys

Nuo pradžios kilpa prasidės ir atliks tam tikrą užduotį, baigus užduotį, jos perkėlimas į kitą kilpą ir vėl atliks tą pačią užduotį kitoje ląstelėje. Panašiai, kol pasiekia galutinį tašką, jis nuolat atlieka nurodytą užduotį.

Kaip naudoti „VBA Next Loop“?

Tarkime, kad norite įterpti serijos numerius nuo 1 iki 10 iki A1 iki A10 langelių. Žinoma, mes galime įterpti, kaip parašę dešimt kodo eilučių.

Kodas:

Sub For_Next_Loop_Example1 () diapazonas ("A1"). Reikšmė = 1 diapazonas ("A2"). Reikšmė = 2 diapazonas ("A3"). Reikšmė = 3 diapazonas ("A4"). Reikšmė = 4 diapazonas ("A5") .Vertė = 5 Diapazonas ("A6"). Vertė = 6 Diapazonas ("A7"). Vertė = 7 Diapazonas ("A8"). Vertė = 8 Diapazonas ("A9"). Vertė = 9 Diapazonas ("A10") .Vertė = 10 pabaigos sub

Bet ką daryti, jei noriu įterpti 100 serijos numerių? Aišku, negaliu parašyti 100 eilučių kodo vien tam, kad įterpčiau serijos numerius. Čia atsispindi „FOR NEXT“ kilpos grožis . Atlikite toliau nurodytus veiksmus, kad sumažintumėte kodą.

1 žingsnis: Pirmiausia turime apibrėžti kintamąjį. Deklaravau kintamojo pavadinimą „Serial_Number“ kaip sveikojo skaičiaus duomenų tipą.

Kodas:

Sub For_Next_Loop_Example2 () Dim Serial_Number As Integer End Sub

2 žingsnis: Dabar aš užsakau kreiptis į NEXT kilpą, mūsų tikslas yra įterpti serijos numerius nuo 1 iki 10, taigi tai reiškia, kad mūsų ciklas turi veikti dešimt kartų. Taigi FOR LOOP teiginys turėtų būti toks.

Jei serijos numeris yra nuo 1 iki 10

Kitas serijos numeris

Kodas:

Sub For_Next_Loop_Example2 () Dim Serial_Number kaip sveikas skaičius Serial_Number = nuo 1 iki 10 Kitas Serial_Number End Sub

3 žingsnis: pritaikėme kilpą. Pritaikius kilpą, turime nurodyti, ką turime daryti ciklo viduje. Mūsų tikslas čia yra įterpti serijos numerius nuo 1 iki 10. Taigi parašykite kodą kaip Cells (Serial_Number, 1). Vertė = Serial_Number.

Kodas:

Sub For_Next_Loop_Example2 () Dim Serial_Number kaip sveikas Dim Serial_Number = nuo 1 iki 10 langelių (Serial_Number, 1). Vertė = Serial_Number Dim Serial_Number End Sub

4 žingsnis: Priežastis, kodėl „CELLS“ ypatybėje nurodėme „Serial_Number“, nes čia negalime nurodyti sunkiausio eilutės nuorodos numerio. Kiekvieną kartą, kai eina ciklas, noriu įterpti naują serijos numerį į naują langelį, o ne į tą pačią langelį.

5 žingsnis: Paleiskite kodą eilute po eilutės paspausdami klavišą F8.

6 žingsnis: Užveskite žymeklį ant kintamojo Serial_Number; ji rodo dabartinę „Serial_Number“ vertę.

Šiuo metu Serial_Number reikšmė lygi nuliui.

7 žingsnis: Dar kartą paspauskite klavišą F8, geltona spalva pereis į kitą VBA kodo eilutę. Dabar užveskite žymeklį ant Serial_Number.

Dabar „Serial_Number“ vertė yra lygi vienai, nes dabar kilpa yra pradėta, o mūsų ciklas prasideda nuo 1, taigi kintamojo „Serial_Number“ vertė yra lygi vienai.

Dar vienas įdomus dalykas yra visur, kur yra kintamasis Serial_Number, kuris taip pat yra lygus 1.

Taigi langelių nuosavybėje kodą paminėjome kaip:

Langeliai (serijos numeris, 1). Vertė = serijos numeris

Tai reiškia „ Ląstelės“ (1, 1). Vertė = 1. (Ląstelės (1,1) reiškia 1 eilutę ir 1 stulpelį.

Taigi 1 eilutės ir 1 stulpelio vertė turėtų būti 1.

8 žingsnis: Dabar dar kartą paspauskite F8 ir pažiūrėkite, kas vyksta 1 eilutėje ir 1 stulpelyje, ty langelyje A1.

Taigi mes gavome 1 kaip reikšmę, ty Serial_Number reikšmę.

9 žingsnis: Dabar dar kartą paspauskite klavišą F8. Paprastai kitas kodas turėtų būti vykdomas, ty pastotės galas. Bet čia bus grįžta prie „aukščiau esančios eilutės“.

10 žingsnis: Prisiminkite, kad ciklas jau baigtas pirmą kartą. Dabar jis grįžta antrą kartą. Dabar uždėkite žymeklį ant kintamojo Serial_Number ir pažiūrėkite, kokia yra reikšmė.

Dabar kintamasis Serial_Number yra lygus 2, nes kilpa jau grįžo antrą kartą.

Dabar, nesvarbu, kur yra „Serial_Number“, lygi vertė 2. Taigi eilutės kodas:

Langeliai (serijos numeris, 1). Vertė = serijos numeris yra lygus:

Ląstelės (2, 1). Vertė = 2. (Ląstelės (2,1) reiškia 2 eilutę ir 1 stulpelį, ty A2 langelį).

11 veiksmas: paleiskite šį kodą ir pamatykite reikšmę langelyje A2.

Taigi, mes gavome antrąją serijos numerio vertę.

12 žingsnis: Dabar paspauskite klavišą F8. Jis vėl grįš į aukščiau nurodytą eilutę, kad pakartotų kodą. Šį kartą „Serial_Number“ vertė bus 3.

13 žingsnis: Taigi visur, kur yra „Serial_Number“, yra lygu 3.

Taigi eilutės kodas: Cells (Serial_Number, 1). Vertė = Serial_Number yra lygi:

Langeliai (3, 1). Vertė = 3. (Langeliai (3,1) reiškia 3 eilutę ir 1 stulpelį, ty A3 langelį).

14 žingsnis: Paspauskite F8, kad įvykdytumėte paryškintą eilutę ir pamatytumėte vertę langelyje A3.

15 žingsnis: Dabar toliau spauskite F8. Ji vis įves serijos numerius. Kintamojo „Serial_Number“ akimirkos vertė yra 10, ji sustabdys kilpą ir išeis iš ciklo.

Įdomios straipsniai...