Kuidas kasutada VBA-d iga aasa jaoks? (koos Exceli näidetega)

Exceli VBA iga aasa jaoks

VBA iga silmuse jaoks läbib kogu objektide või esemete kogu ja teostab sarnaseid tegevusi. See võtab arvesse kõiki saadaolevaid määratud objekte ja teostab juhendatud tegevusi igas objektis.

VBA-s on kohustuslik mõista VBA silmusid. Silmus võimaldab teil teha sama tüüpi tegevust paljude Exceli rakkude või objektide jaoks. Tänases artiklis keskendume mehhanismile Iga silmus.

Süntaks

Iga silmuse jaoks saab tutvuda kõigi objektide või esemete kogumiga. Kogumik pole muud kui “Kõik avatud töövihikud”, “Kõik töövihiku töölehed”, “Kogu töövihiku kujundite ja diagrammide kogu”.

Vaatame süntaksit.

Mida teha iga kollektsiooni objekti puhul? Järgmine objekt

Näiteks on teie töövihikus 10 lehte ja soovite peita kõik töölehed, välja arvatud see, milles olete. Kas saate peita käsitsi, jah, saate, aga mis siis, kui teil on 100 sellist lehte, pole see igav ja aeg -tarbiv ülesanne teha. Seda saate teha iga silmuse jaoks.

Kuidas kasutada VBA iga aasa jaoks? (Näited)

Selle VBA iga silmusemalli jaoks saate alla laadida siit - VBA iga silmusemalli jaoks

Näide # 1 - sisestage sama tekst kõikidesse arvutustabelitesse

Näeme, kuidas VBA-s KÕIKI kasutada, lihtsa näitega. Oletame, et teil on töövihikus 5 töölehte ja soovite lisada lahtrisse A1 kõikidesse töölehtedesse sõna “Tere”.

Saame seda teha igale silmale. Üks asi, mida peate siin meeles pidama, on see, et tegeleme selle tegevusega tegelikult igas töölehel, mitte samas töölehel. VBA koodi kirjutamiseks järgige alltoodud samme.

1. samm: käivitage Exceli makro.

Kood:

 Alam iga_näide1 () lõpu alam 

2. samm: kuna viidame töölehtedele, deklareerige muutuja kui „tööleht“.

Kood:

 Sub For_Each_Eexample1 () Dim Ws nagu töölehe lõpu alam 

3. samm: nüüd, kui kasutate IGA LOOPi jaoks, peame suunama aktiivse töövihiku igale töölehele.

Kood:

 Sub For_Each_Eexample1 () Dim Ws töölehena ActiveWorkbooki iga W jaoks. Töölehed Järgmised Ws End Sub 

4. samm: kirjutage nüüd igale töölehele, mida me teha tahame. Igasse töölehte peame lahtrisse A1 sisestama sõna “Tere”.

Kood: 

 Sub For_Each_Example1 () Dim Ws töölehena ActiveWorkbooki iga W-le. Töölehed Ws.Range ("A1"). Väärtus = "Hello" Next Ws End Sub 

5. samm: käivitage see kood nüüd käsitsi valiku kaudu või vajutage otseteeklahvi F5. Pole tähtis, mitu lehte teil on, lisab see sõna „Tere” kõikidele töölehtedele.

Näide # 2 - peida kõik lehed

Nagu postituses varem öeldud, mis juhtub, kui teil on peidetud sadu lehti, välja arvatud see, kus te asute. Kasutades iga silmuse jaoks, võime kõik lehed Excelisse peita.

1. samm: käivitage makro oma nimega.

Kood:

 Alam iga_näide2 () lõpu alam 

2. samm: deklareerige muutuja väärtuseks „ Ws ”.

Kood:

 Sub For_Each_Eexample2 () Dim Ws töölehe lõpus Sub 

3. samm: nüüd peate igas töölehes peitma lehe.

Kood:

 Sub For_Each_Example2 () Dim Ws töölehena ActiveWorkbooki iga W-le. Töölehed Ws.Visible = xlSheetVeryHidden Järgmine Ws End Sub 

Samm 4: Kuid kui käivitate ülaltoodud koodi, püüab see kõik lehed peita, kuid Excel vajab vähemalt ühte lehte, et see oleks nähtav. Seega peame ütlema, millist lehte ei tohi peita.

Kood:

 Sub For_Each_Example2 () Dim Ws töölehena ActiveWorkbooki iga W jaoks. Töölehed Kui Ws.Name "Main Sheet", siis Ws.Visible = xlSheetVeryHidden End, kui Järgmised Ws End Sub 

Tehtemärki vahendid ei võrdu VBA .

Nii et kood ütleb, kui sirvite aktiivse töövihiku kõiki töölehti, peida ainult siis, kui lehe nimi ei ole võrdne põhilehe lehenimega.

Seda saab teha VBA-s IF-lause abil. Kirjutage kood kui IF Ws.Name “Main Sheet”. Seejärel varjata või kui see on võrdne lehe nimega “Main Sheet”, siis ära peida.

5. samm: käivitage kood nüüd klahviga F5 või käsitsi, siis peidab see kogu töölehe, välja arvatud see, mille nimi on “Põhileht”.

Näide # 3 - peitke kõigi lehtede peitmine

Oleme näinud, kuidas peita kõik lehed, välja arvatud see, kus oleme. Samamoodi võime ka kõik töölehed peita.

Me lihtsalt vaja muuta koodi xlSheetVeryHidden et xlSheetVisible.

Kood:

 Sub For_Each_Example3 () Dim Ws töölehena ActiveWorkbooki iga W jaoks. Töölehed Ws.Visible = xlSheetVisible Next Ws End Sub 

Siin pole meil IF-tingimust vaja, kuna me kõik lehed peidame. Kui te ei soovi ühtegi konkreetset lehte varjata, võite kasutada tingimust IF ja sisestada lehe nime.

Näide # 4 - kõigi lehtede kaitsmine ja kaitse tühistamine

Kaitse kõiki lehti: saame kaitsta töövihiku kõiki lehti vaid koodiga. Kogu kood on sama ainus asi, mida me siin tegema peame, W-de asemel. Nähtavalt peame koodi Ws panema. Kaitske ja tippige parool.

Kood:

 Sub For_Each_Example4 () Dim Ws töölehena ActiveWorkbooki iga W jaoks. Töölehed Ws. Kaitse parool: = "Excel @ 2019" Next Ws End Sub 

Kõigi lehtede kaitse eemaldamine: Sarnasel märkusel võime vba-ga kaitsta ka kõiki lehti, mis olid töövihikus kaitstud. Peame lihtsalt panema sõna Tühista ja parool.

Kood:

 Sub For_Each_Example6 () Dim Ws töölehena ActiveWorkbooki iga W jaoks. Töölehed Ws. Parooli kaitsmata jätmine: = "Excel @ 2019" Järgmine Ws End Sub 

Asjad, mida meeles pidada

  • Igaüks on mõeldud esemete kogumiseks.
  • See võtab arvesse kõiki määratud töövihikus olevaid määratud objekte.
  • Muutuja deklareerimisel peame millisele objektile viitame. Näiteks tööleht, töövihik, diagramm jne.

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