Kaip naudoti VBA kiekvienai kilpai? (su „Excel“ pavyzdžiais)

„Excel VBA“ kiekvienai kilpai

VBA kiekvienai kilpai peržiūri visą objektų ar daiktų kolekciją ir atlieka panašų veiklų rinkinį. Ji atsižvelgs į visus turimus nurodytus objektus ir atliks nurodytą veiklą kiekviename objekte.

VBA privaloma suprasti VBA kilpas. Kilpa leidžia atlikti tą pačią veiklą daugeliui „Excel“ langelių ar objektų. Šiandienos straipsnyje daugiausia dėmesio skirsime „Kiekvienos kilpos“ mechanizmui.

Sintaksė

Kiekviena kilpa gali apžvelgti visą nustatytą objektų ar daiktų kolekciją. Kolekcija yra ne kas kita, kaip „Visos atidarytos darbaknygės“, „Visi darbaknygės darbalapiai“, „Visas darbaknygės formų ir diagramų rinkinys“.

Pažvelkime į sintaksę.

Ką daryti kiekvienam kolekcijos objektui? Kitas objektas

Pavyzdžiui, jūs turite 10 lapų savo darbaknygėje ir norite paslėpti visus darbalapius, išskyrus tą, kuriame esate. Ar galite paslėpti rankiniu būdu, taip, galite, bet kas, jei turite 100 tokių lapų, ar ne nuobodu ir laikas vartojanti užduotis. Tai galite padaryti naudodami kiekvieną kilpą.

Kaip naudoti kiekvienai VBA kilpai? (Pavyzdžiai)

Šį VBA kiekvienam ciklo šablonui galite atsisiųsti čia - VBA kiekvienam kilpos šablonui

1 pavyzdys - Įterpkite tą patį tekstą į visus lapus

Pažiūrėsime, kaip naudoti KIEKVIENAM VBA su paprastu pavyzdžiu. Tarkime, kad turite 5 darbalapius darbaknygėje ir norite įterpti žodį „Labas“ į visus A1 langelio darbalapius.

Tai galime padaryti naudodami KIEKVIENĄ LOOP. Čia reikia atsiminti vieną dalyką: mes iš tikrųjų atliekame šią veiklą kiekviename darbalapyje, o ne tame pačiame darbalapyje. Norėdami parašyti VBA kodą, atlikite toliau nurodytus veiksmus.

1 veiksmas: paleiskite „Excel“ makrokomandą.

Kodas:

 Sub For_Each_Example1 () Pabaiga Sub 

2 žingsnis: Kadangi mes kalbame apie darbalapius, skelbkite, kad kintamasis yra „Darbalapis“.

Kodas:

 Sub For_Each_Example1 () Dim Ws kaip darbalapio pabaigos sub 

3 žingsnis: Dabar naudodamiesi KIEKVIENAM LOOP, turime nurodyti kiekvieną aktyviosios darbaknygės darbalapį.

Kodas:

 Sub For_Each_Example1 () Dim Ws kaip kiekvieno Ws darbalapis „ActiveWorkbook“. Darbo lapai „Next Ws End Sub“ 

4 žingsnis: Dabar kiekviename darbalapyje parašykite, ką norime padaryti. Kiekviename darbalapyje mes turime įterpti žodį „Labas“ į langelį A1.

Kodas: 

 Sub For_Each_Example1 () Dim Ws kaip kiekvieno Ws darbalapis „ActiveWorkbook.Worksheets Ws.Range“ („A1“). Reikšmė = „Sveiki“ Kitas Ws End Sub 

5 žingsnis: Dabar paleiskite šį kodą rankiniu būdu naudodamiesi parinktimi arba paspauskite spartųjį klavišą F5, nesvarbu, kiek lapų turite, jis įterps žodį „Labas“ į visus darbalapius.

2 pavyzdys - slėpti visus lapus

Kaip pasakyta anksčiau įraše, ką daryti, jei turite paslėpti šimtus lapų, išskyrus tą, kuriame esate. Naudodamiesi kiekviena kilpa, visus „Excel“ lapus galime paslėpti.

1 veiksmas: paleiskite makrokomandą savo vardu.

Kodas:

 Sub For_Each_Example2 () Pabaiga Sub 

2 žingsnis: paskelbkite kintamąjį kaip „ Ws “.

Kodas:

 Sub For_Each_Example2 () Dim Ws kaip darbalapio pabaigos sub 

3 žingsnis: Dabar kiekviename darbalapyje turite paslėpti lapą.

Kodas:

 Sub For_Each_Example2 () Dim Ws kaip kiekvieno Ws darbalapis „ActiveWorkbook“. Darbo lapai Ws.Visible = xlSheetVeryHidden Kitas Ws End Sub 

4 žingsnis: Bet jei paleisite pirmiau nurodytą kodą, jis bandys paslėpti visus lapus, tačiau „Excel“ reikia, kad būtų matomas bent vienas lapas. Taigi turime pasakyti, kurio lapo neslėpti.

Kodas:

 Sub For_Each_Example2 () Subtitrinti Ws kaip kiekvieno Ws darbalapį „ActiveWorkbook.Worksheetets“, jei Ws.Name „Pagrindinis lapas“, tada Ws.Visible = xlSheetVeryHidden Pabaiga, jei kitas Ws Pabaiga Sub 

Į operatoriaus simbolis reiškia nėra lygus VBA .

Taigi kodas sako, kai jūs lankotės visuose aktyvios darbaknygės darbalapiuose, paslėpkite tik tuo atveju, jei lapo pavadinimas nėra lygus pagrindinio lapo lapo pavadinimui.

Tai galima padaryti naudojant IF sakinį VBA. Parašykite kodą kaip IF Ws.Name „Pagrindinis lapas“. Tada paslėpkite arba, jei jis lygus lapo pavadinimui „Pagrindinis lapas“, tada neslėpkite.

5 žingsnis: Dabar paleiskite kodą naudodami F5 klavišą arba rankiniu būdu, tada jis paslėps visą darbalapį, išskyrus tą, kuris pavadintas „Pagrindinis lapas“.

3 pavyzdys - Nerodyti visų lapų

Mes matėme, kaip paslėpti visus lapus, išskyrus tą, kuriame esame. Panašiai galime ir visus darbalapius paslėpti.

Mums tiesiog reikia pakeisti kodą iš „ xlSheetVeryHidden“ į „ xlSheetVisible“.

Kodas:

 Sub For_Each_Example3 () Dim Ws kaip kiekvieno Ws darbalapis „ActiveWorkbook“. Darbo lapai Ws.Visible = xlSheetVisible Next Ws End Sub 

Čia mums nereikia IF sąlygos, nes mes neslepiame visų lapų. Jei nenorite atskleisti jokio konkretaus lapo, galite naudoti sąlygą IF ir pateikti lapo pavadinimą.

4 pavyzdys - apsaugokite ir panaikinkite visų lapų apsaugą

Apsaugokite visus lapus: visus darbo knygos lapus galime apsaugoti tik kodu. Visas kodas yra tas pats vienintelis dalykas, kurį turime padaryti čia, o ne Ws. Matoma, kad turime įdėti kodą Ws. Apsaugokite ir įveskite slaptažodį.

Kodas:

 Sub For_Each_Example4 () Dim Ws kaip kiekvieno Ws darbalapis „ActiveWorkbook.Worksheets Ws“. Apsaugokite slaptažodį: = "Excel @ 2019" Next Ws End Sub 

Panaikinti visų lapų apsaugą: Panašiai pažymėdami, naudodami „vba“, taip pat galime apsaugoti visus lapus, kurie buvo saugomi darbaknygėje. Mums tiesiog reikia įdėti žodį „Apsaugoti ir slaptažodį“.

Kodas:

 Sub For_Each_Example6 () Dim Ws kaip kiekvieno Ws darbalapis „ActiveWorkbook“. Darbo lapai Ws. Nepanaikinkite slaptažodžio: = "Excel @ 2019" Kitas Ws End Sub 

Ką reikia atsiminti

  • Kiekvienas skirtas objektams rinkti.
  • Ji atsižvelgs į visus nurodytus objektus nurodytoje darbaknygėje.
  • Deklaruodami kintamąjį mums reikia, į kurį objektą mes kalbame. Pavyzdžiui, darbalapis, darbaknygė, diagrama ir kt.

$config[zx-auto] not found$config[zx-overlay] not found