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

Lang L: none (table-of-contents)

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 silmustest aru saada. 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. Grupp 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, kus olete. Kas saate peita käsitsi? Jah, saate, aga mis siis, kui teil on 100 sellist lehte? Kas see pole mitte tüütu ja aeganõudev ülesanne? Seda saate teha iga silmuse jaoks.

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

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

Näeme, kuidas VBA-s KÕIKI kasutada, lihtsa näite abil. 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 teostame seda tegevust igal 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 väärtuseks „tööleht”.

Kood:

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

3. samm: nüüd, kasutades igale silmale, 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 see, mida me tahame teha. 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; see lisab kõikidele töölehtedele sõna “Tere”.

Näide # 2 - peida kõik lehed

Nagu postituses varem öeldud, mis siis, kui teil on peita sadu lehti, välja arvatud see, kus te asute. Kasutades iga silmuse jaoks, võime kõik Exceli lehed 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

4. samm: aga kui käivitate ülaltoodud koodi, püüab see kõik lehed peita, kuid Exceli jaoks on vaja vähemalt ühte lehte. Seega peame ütlema, millist lehte mitte 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 .

So code says when you are looping through all the worksheets in the active workbook, hide only if the sheet name is not equal to the sheet name of Main Sheet.

This can be done by using the IF statement in VBA. Write the code as IF Ws.Name “Main Sheet” Then hide or if it is equal to the sheet name “Main Sheet,” then don’t hide.

Step 5: Now run the code using the F5 key or manually. Then, it will hide all the worksheets except the one named “Main Sheet.”

Example #3 - Unhide All the Sheets

We have seen how to hide all sheets except the one we are in. Similarly, we can unhide all the worksheets as well.

We need to change the code from xlSheetVeryHidden to xlSheetVisible.

Code:

Sub For_Each_Example3() Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets Ws.Visible = xlSheetVisible Next Ws End Sub

Here we don’t need the IF condition because we are unhiding all the sheets. If you don’t want to unhide any specific sheet, then you can use the IF condition and supply the sheet name.

Example #4 - Protect and UnProtect All the Sheets

Protect All Sheets: We can protect all the sheets in the workbook with just a piece of code. All the principle is the same only thing we need to do here is instead of Ws. Visible, we need to put the code Ws. Protect and type the password.

Code:

Sub For_Each_Example4() Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets Ws.Protect Password:="Excel@2019" Next Ws End Sub

Kõigi lehtede kaitse eemaldamine: sarnase märkuse korral võime VBA-ga kaitsta ka kõik töövihikus kaitstud lehed. Peame 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.

Huvitavad Artiklid...