Zanke VBA - Seznam najboljših 4 vrst zank (s primeri)

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

  1. Za naslednjo zanko
  2. Za vsako zanko
  3. Ali medtem ko zanko
  4. 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.

Zanimive Članki...