Excel VBA zanke

Zank se lahko šteje za najboljši delujoči sestavni del VBA in se lahko šteje tudi za srce makrov. Običajno vam pomagajo zmanjšati število vrstic v kodi in delo opravite v nekaj minutah, kar lahko traja nekaj ur za človeka.

Programer v vsakodnevnem življenju naleti na take primere, ko mora vedno znova izvajati isti niz kode. Imenuje se zanko. Očitno bo vsakič, ko se izvaja ista koda, približno enak rezultat z delno spremembo spremenljivke. Looping ima velik nabor prednosti, najpomembnejša od vseh pa je avtomatizacija. Pomaga avtomatizirati stvari.

Če še niste uporabljali skripta VBA, lahko preprosto odprete delovni zvezek Excela in pritisnete Alt + F11 . Odprl bo projekt VBA.

Pognimo se globlje noter.

Recimo, da smo želeli na enem posnetku natisniti 1 do 10 številk. To lahko storimo z naslednjo kodo.

Koda:

 Pod zanko1 () Debug.Print 1 Debug.Print 2 Debug.Print 3 Debug.Print 4 Debug.Print 5 Debug.Print 6 Debug.Print 7 Debug.Print 8 Debug.Print 9 Debug.Print 10 End Sub 

Če lahko hitro pridete skozi kodo, sem dodala Debug.Print eno za drugo, da natisnete številke od 1 do 10. Po zagonu kode lahko vidimo izhod v takojšnjem oknu. Če želite odpreti takojšnje okno, pritisnite Ctrl + G kjer koli v Excelu.

Zaženite kodo s tipko F5 ali ročno, kot je prikazano na spodnjem posnetku zaslona. Torej, preverimo izhod za to kodo.

Vrste zank VBA v Excelu

Ker ste programer, ne boste nikoli radi pisali ponavljajočih se vrstic, ki bodo prinesle enak rezultat. Radi bi ga avtomatizirali. Zato bomo videli različne Excel VBA zanke in kako jih uporabiti z nekaj primeri.

Vtipkajte številko 1 - VBA za naslednjo zanko

Za Next VBA zanka nam omogoča, da krožimo po območju celic in opravimo isto nalogo za vsako celico, navedeno v zanki. Tu mora biti navedena začetna številka in končna številka.

Koda:

 Pod zanka1 () Za i = 1 do 10 celic (i, 1) .Value = i Next i End Sub 

Ta koda daje popolnoma enak izhod kot prejšnja. Vendar je pri tej kodi najbolj omembe vredno zmanjšanje števila vrstic. 12-vrsticno kodo smo zmanjšali na samo kodo s 5 vrsticami.

V tej kodi je zanka1 ime makra. Zanka for se začne od i = 1, pod celico excel natisne vrednost i (tj. 1) in pri Naprej gre spet na začetek zanke for in naredi i = 2 natisne vrednost i (tj. 2) v naslednji celici in tako naprej, dokler koda ne doseže zadnje vrednosti, tj. 10. Ko koda doseže zadnjo vrednost i (10), se koda sam prekine zaradi nerazpoložljivosti katere koli celoštevilčne vrednosti nad 10.

Zaženite kodo s tipko F5 ali ročno. Izhod lahko torej vidite spodaj.

Tip # 2 - VBA za zanko s korakom naprej

Kot ste videli v prejšnjem primeru zanke, sem imel povečanje za 1 korak. Privzeto se vrednost koraka šteje za 1 v VBA. Vendar, ali je mogoče postaviti svoj korak? Predpostavimo, da želite videti le enakomerne številke med 1 in 20. Kako to storiti?

Kot kaže splošna matematika, se števila, ki so med seboj na razdalji 2 (začenši s prvim parnim številom 2), štejejo kot enakomerna števila, kajne?

Uporabili bomo isto logiko. Glej spodnjo kodo za referenco.

Koda:

 Sub ForwardStep () Za i = 2 do 20 Korak 2 celice (i, 1) .Value = i Naprej i konec Pod 

Za vrednosti, ki se začnejo z 2, ta zanka omogoča tiskanje 2, 4, 6, 8… 20 v naslednjih celicah excel. Korak 2 je izrecno navedel, da bo od števila 2 koda prešla na naslednjo številko s korakom 2 (tj. Natisnjeno 4) in tako naprej. Ta postopek se bo nadaljeval, dokler se v celici ne pojavi 20. Ko se v celici pojavi 20, se zanka samodejno prekine.

Zaženite kodo s tipko F5 ali ročno. Izhod lahko torej vidite spodaj.

Tip 3 - VBA za zanko s korakom nazaj

Enako kot za zanko s korakom naprej, lahko uporabimo za zanko s korakom nazaj. Kaj na primer, če svoj korak nazaj postavimo na -2 in zaženemo zanko iz vrednosti 20 do 2?

Videli bomo, kako deluje.

Koda:

 Sub BackwardStep () Za i = 20 do 2 korak -2 Debug.Print i Next in End Sub 

Po zagonu kode vidimo izhod v takojšnjem oknu. Če želite odpreti takojšnje okno, pritisnite Ctrl + G kjer koli v Excelu.

Kot smo dali začetno točko zanke kot 20 in končno točko kot 2 s korakom -2, se zanka začne z 20 in v koraku -2 nadaljuje na naslednje število, ki je -18 in tako naprej. Takoj, ko zanka doseže vrednost 2, se samodejno prekine in zadnja vrednost bo natisnjena kot 2.

Tip # 4 - VBA ugnezdena za zanko

Lahko tudi Nest the zanko. Vendar pa ni priporočljivo, da se v kodo gnezdijo iste zanke več kot trikrat (v logiki se lahko šteje kot napaka).

Glejte spodnjo kodo za ugnezdena zanka.

Koda:

 Pod NestedFor () Za i = 1 do 10 Za j = 1 do 2 celici (i, j) .Value = i * j Naprej j Naslednji in konec Sub 

V tem primeru pri i = 1 in j = 1 makro postavi vrednost i * j (1 * 1) v presečišče vrstice i = 1 in stolpca j = 1 (tj. Celice A1) in gre za naslednjo vrednost j (2) vodenje i = 1. V presečišče vrstice i = 1 in stolpca j = 2 (tj. celica B1) makro vnese vrednost I * j (1 * 2). Loop ignorira naslednjo vrednost j, saj j variira le od 1 do 2 in preide na naslednjo vrednost i.

Pri i = 2 in j = 1 makro vnese vrednost i * j (2 * 1) v presečišče 2. vrstice in 1. stolpca (tj. Celice A2) in nadaljuje. Dokler doseg i in j.

Zaženite kodo s tipko F5 ali ročno, kot je prikazano na spodnjem posnetku zaslona. Izhod lahko torej vidite spodaj.

Vtipkajte številko 5 - VBA naredite, medtem ko zanke

Do while zanka je ena najzanimivejših zank v VBA. Omogoča vam, da preverite stanje in napišete izhod (DO), ko je določen pogoj ali niz pogojev izpolnjen (ali je pogoj / s resničen).

Glej kodo spodaj:

Koda:

 Pod do_timeloop () Dim i kot celo število i = 1 Ali medtem, ko i <= 10 celic (i, 1) .Value = i * ii = i + 1 zanka konec pod 

Ta zanka deluje kot spodaj:

Za vrednosti i od 1 (prvotno i = 1) do 10 izračuna, i * i (tj. Vrednost kvadrata za vsako celo število vrednosti i) in jo vnese pod celico 1 do 10. Izhod ni nič drugega kot kvadratne vrednosti celih števil 1 do 10. Poglejte si Loop pod to kodo. Obvezno ga dodajte, sicer bo sistem sprožil napako.

Zaženite kodo s tipko F5 ali ročno. Izhod lahko torej vidite spodaj.

To je nekaj primerov zanke VBA, za katero sem poskušal skrbeti v tem članku. Upam, da bo dovolj natančen, da zbistrim nekatere koncepte.

Stvari, ki jih je treba zapomniti

  • Medtem ko uporabljate za zanko s korakom nazaj, se prepričajte, da mora biti vaša začetna številka večja od končne številke in obratno.
  • V razdelku Do, medtem ko zanka preverite, ali uporabljate zanko, da zaprete postopek, preden končate celotno kodo VBA. V nasprotnem primeru sistem vrže napako prevajalnika s sporočilom o napaki "Brez brez zanke".

Predlogo VBA Loops Excel lahko prenesete tukaj - Predloga VBA Loops Excel

Priporočeni članki

To je vodnik za Excel VBA zanke. Tu smo razpravljali o tipih Excel VBA zank in kako jih uporabiti skupaj z nekaj praktičnimi primeri in naloženo predlogo excela. Ogledate si lahko tudi druge naše predlagane članke -

  1. VBA funkcija v Excelu
  2. VBA VLOOKUP funkcija
  3. Bližnjice na tipkovnici Excel
  4. Excel Percentile Formula

Kategorija: