Zanke Excel VBA
Zanke se pogosto uporabljajo v vseh programskih jezikih, kjer obstajajo določene potrebe ali merila, kadar potrebujemo določeno kodo za zagon določenega časa, za te kode uporabljamo zanke, zdaj je v VBA veliko vrst zank, kot je Do while, Do do, Za zanko in Za vsako zanko te zanke pomagajo izvajati kodo, dokler ni izpolnjen pogoj.
Naj to izjavo dam na samem začetku. "Če želite obvladati v VBA, morate dokončati koncept zank v makrih VBA."
Loop ni nič drugega kot iti skozi vrsto celic, skozi vrsto predmetov, da bi ponovil isto nalogo za zbiranje celic ali predmetov. Namesto da nalogo opravimo v ločenem nizu vrstic kod z uporabo zank, lahko dolžino kode skrajšamo na najmanjšo možno.

Seznam najboljših 4 vrst zank VBA
- Za naslednjo zanko
- Za vsako zanko
- Ali medtem ko zanko
- Ali do Loop
Oglejmo si vsako od teh vrst podrobno.
Tip # 1 - za naslednjo zanko
Zanka For Next nam omogoča, da preletimo obseg celic in opravimo enako nalogo za vsako celico, določeno v zanki. Tu moramo povedati začetno in končno številko.
Primer
Če želite na primer vstaviti serijske številke od 1 do 10, je spodaj običajni način vstavljanja serijskih številk.
Sub SerialNumber ()
Obseg (“A1”). Vrednost = 1
Razpon (“A2”). Vrednost = 2
Obseg (“A3”). Vrednost = 3
Obseg (“A4”). Vrednost = 4
Obseg (“A5”). Vrednost = 5
Obseg (“A6”). Vrednost = 6
Razpon (“A7”). Vrednost = 7
Obseg (“A8”). Vrednost = 8
Obseg (“A9”). Vrednost = 9
Obseg (“A10”). Vrednost = 10
Končaj pod
Izgleda v redu, kajne? Toda tu je težava le 10-krat, ko moramo opraviti to nalogo. Toda predstavljajte si, kaj če želite vstaviti 100 ali 1000 številk, lahko napišete kodo 100 ali 1000 vrstic. Nemogoče je in prav tam je lepota zanke For Next priročna.
1. korak: Odprite makro in razglasi spremenljivko i kot Integer.
Sub Insert_Serial_Number ()
Dim i kot celo število
Končaj pod
2. korak: Zdaj odprite zanko For . Tu omenimo začetek in konec zanke z uporabo spremenljivke i.

3. korak: Zdaj napišite kodo, ki jo želite izvesti. V celice A1 do A10 moramo vstaviti številke od 1 do 10. Namesto metode Range uporabite metodo Cells.

Zahteva številko vrstice, saj smo spremenljivko i sprva že razglasili za celo število. Njegova vrednost je 1. Torej, omenite, da mi je všeč številka vrstice in 1 kot številka stolpca.

Zdaj bi morala biti vrednost trenutne vrednosti celice ena, namesto da bi omenjali številko ena kot vrednost i . Ker se bo vsaka zagon časovne zanke vrednost i povečala za 1.

Zdaj pritisnite tipko F8, da stopite v eno vrstico. Pritiskajte F8, dokler ne doseže zanke For.

Ta rumena barva pomeni, da bo izbrana vrstica kode kmalu zagnana. Postavite kurzor na I in vrednost bo prikazana kot nič.

Zdaj pritisnite še enkrat tipko F8 in postavite kurzor na i & zdaj je vrednost 1.

Torej so vrednosti i povsod zdaj enake 1. " Celice (I, 1) .value = I" pomeni Celice (1, 1) .value = 1.
Pritisnite tipko F8 in si oglejte vrednost v celici A1. V celici A1 morate videti 1.

Če zdaj pritisnete tipko F8, se bo še enkrat vrnila v zanko For, ker je končna omejitev spremenljivke i 10. Tokratna vrednost I bo 2.

Za zanko Next se bo izvajalo 10-krat in vstavilo serijske številke od 1 do 10.

Tip # 2 - za vsako zanko
Za Vsaka zanka v VBA je namenjena pregledu zbirke predmetov. Za naslednjo zanko zavrtite skozi celice in izvedite nalogo, za vsako zanko pa zanke skozi predmete, kot so Delovni listi, Grafikoni, Delovni zvezki, Oblike.
S to zanko lahko preletimo vse delovne liste in izvedemo nekatere naloge. Na primer, lahko se po vseh delovnih listih zaprete in razkrijete.
Primer # 1
Če želite skriti vse delovne liste, razen lista, na katerem delate, kako boste to storili? Če imate v delovnem zvezku 20 listov, je to dolgotrajen postopek. Toda z zanko FOR EACH lahko to nalogo izvedemo.
Imam 5 listov in želim skriti vse liste, razen naloge “Main” spodaj.
Sub To_Hide_All_Sheet ()
Dim Ws As Delovni list
Za vsako delovno silo v ActiveWorkbook.Worksheets
Če je Ws.Name "Main", potem
Ws.Visible = xlSheetVeryHidden
End If
Naslednji Ws
Končaj pod
2. primer
Če želite razkriti vse skrite liste, bo spodnjo kodo opravilo opravilo namesto vas.
Sub To_UnHide_Specific_Sheet ()
Dim Ws As Delovni list
Za vsako delovno silo v ActiveWorkbook.Worksheets
Ws.Visible = xlSheetVisible
Naslednji Ws
Končaj pod
Tip # 3 - Do While Loop
Zanka Do while opravi nalogo, medtem ko je dani pogoj TRUE, in ko stanje postane FALSE, bo prenehal z zanko. Za razliko od ostalih dveh zank Do While preizkuša stanje na koncu zanke, ne na začetku.
Pokazal vam bom primer vstavljanja serijskih številk z zanko Do While.
Sub Do_While_Example ()
Dim i kot celo število
i = 1
Do While i <11
Celice (i, 1) .Vrednost = i
i = i + 1
Loop
Končaj pod
Zgornja zanka se bo izvajala, medtem ko je i manj kot 11, in še naprej vstavlja serijske številke. V trenutku, ko bom postal večji od 11 let, se bo ustavil.
Tip # 4 - Do Do Loop
Za razliko od zanke Do While se zanka Do Do ne izvaja, medtem ko je pogoj TRUE; namesto tega zanka, dokler pogoj ni FALSE. Na primer, poglejte spodnjo kodo.
Pod Do_Until_Primer ()
Dim i kot celo število
i = 1
Ali do i = 11
celic (i, 1). Vrednost = i
i = i + 1
zanka
Končaj pod
Edina razlika med zanko Do While & Do Do je operater, ki ga določimo. V Do, Medtem ko smo omenili zagon zanke, medtem ko je i manj kot (<), 11, vendar v zanki do, smo omenili zagon zanke, dokler i ni enako (=) do 11.
Stvari, ki si jih je treba zapomniti
- Obstaja bolj napreden primer zanke Excel VBA, vendar bomo vsakega posebej podrobno zajeli v ločenem članku.
- Vsaka zanka je namenjena objektnim spremenljivkam.
- Čeprav je Naredi medtem in delaj dokler izgleda, da je omenjanje stanja zelo pomembno.
- Zanke so zelo pomembni koncepti.