Kā izmantot VBA katrai cilpai? (ar Excel piemēriem)

Excel VBA katrai cilpai

VBA for Every Loop iziet visu objektu vai priekšmetu kolekciju un veic līdzīgu darbību kopumu. Tas ņems vērā visus pieejamos norādītos objektus un veiks norādītas darbības katrā objektā.

VBA ir obligāti jāsaprot VBA cilpas. Cilpa ļauj veikt tāda paša veida darbību daudzām Excel šūnām vai objektiem. Šodienas rakstā mēs koncentrēsimies uz katras cilpas mehānismu.

Sintakse

Par katru cilpu var cilpot visu iestatīto objektu vai priekšmetu kolekciju. Kolekcija ir nekas cits kā “Visas atvērtās darbgrāmatas”, “Visas darbgrāmatas darblapas”, “Visas darbgrāmatas formu un diagrammu kolekcijas”.

Apskatīsim sintaksi.

Kas jādara katram kolekcijas objektam? Nākamais objekts

Piemēram, jūsu darbgrāmatā ir 10 lapas un vēlaties paslēpt visas darblapas, izņemot to, kurā atrodaties. Vai varat paslēpt manuāli, jā, varat, bet ja jums ir 100 tādas lapas, tas nav garlaicīgi un laiks -patērējams uzdevums. To var izdarīt, izmantojot katru cilpu.

Kā izmantot katrai cilpai VBA? (Piemēri)

Šo VBA katrai cilpas veidnei varat lejupielādēt šeit - VBA katrai cilpas veidnei

1. piemērs - ievietojiet to pašu tekstu visās izklājlapās

Mēs redzēsim, kā izmantot KATRAM VBA ar vienkāršu piemēru. Pieņemsim, ka darbgrāmatā ir 5 darblapas un vēlaties ievietot vārdu “Labdien” visās šūnas A1 darblapās.

Mēs to varam izdarīt, KATRAM LOKAM. Viena lieta, kas jums jāatceras, ir tā, ka mēs faktiski veicam šo darbību katrā darblapā, nevis tajā pašā darblapā. Lai ierakstītu VBA kodu, rīkojieties šādi.

1. darbība: sāciet Excel makro.

Kods:

 Sub_Each_Example1 () Apakšdaļa Sub 

2. solis: Tā kā mēs atsaucamies uz darblapām, deklarējiet mainīgo kā “Darblapa”.

Kods:

 Sub For_Each_Example1 () Dim Ws kā darblapas beigu apakšsadaļa 

3. solis: Tagad, izmantojot KATRU LOKU, mums ir jānorāda katra darblapa aktīvajā darbgrāmatā.

Kods:

 Sub for_Each_Example1 () Dim Ws kā darblapa katrai W ActiveWorkbook darblapā. Darblapas Next Ws End Sub 

4. solis: Tagad katrā darblapā ierakstiet to, ko mēs vēlamies darīt. Katrā darblapā mums šūnā A1 jāievieto vārds “Labdien”.

Kods: 

 Sub For_Each_Example1 () Dim Ws kā darblapa katrai W ActiveWorkbook.Worksheets Ws.Range ("A1"). Vērtība = "Sveiki" Nākamo Ws beigu apakšdaļa 

5. solis: Tagad palaidiet šo kodu manuāli, izmantojot opciju, vai nospiediet īsinājumtaustiņu F5, nav svarīgi, cik lapu jums ir, visās darblapās ievietosiet vārdu “Hello”.

2. piemērs - paslēpt visas lapas

Kā vēstīts iepriekš, kā rīkoties, ja jums ir simtiem lapu, kuras paslēpt, izņemot to, kurā atrodaties. Izmantojot katrai cilpai, mēs varam visas lapas paslēpt Excel.

1. darbība: sāciet makro ar savu vārdu.

Kods:

 Sub_Each_Example2 () Apakšdaļa Sub 

2. darbība: paziņojiet mainīgo kā “ Ws ”.

Kods:

 Sub For_Each_Example2 () Dim Ws kā darblapas beigu apakšsadaļa 

3. solis: Tagad katrā darblapā jums jāslēpj lapa.

Kods:

 Sub For_Each_Example2 () Dim Ws kā darblapa katrai W ActiveWorkbook darblapā. Darblapas Ws.Visible = xlSheetVeryHidden Nākamās Ws beigas Sub 

4. solis: Bet, ja palaižat iepriekš minēto kodu, tas mēģinās paslēpt visas lapas, taču Excel ir nepieciešama vismaz viena lapa, lai tā būtu redzama. Tāpēc mums jāpasaka, kuru lapu neslēpt.

Kods:

 Sub For_Each_Example2 () Dim Ws kā darblapa katram W ActiveWorkbook.Worksheets Ja Ws.Name "Galvenā lapa", tad Ws.Visible = xlSheetVeryHidden End, ja nākamās Ws beigsies Sub 

Par operators simbols līdzekļi nav vienāds ar VBA .

Tātad kods saka, kad atrodaties visās aktīvās darbgrāmatas darblapās, paslēpiet tikai tad, ja lapas nosaukums nav vienāds ar galvenās lapas lapas nosaukumu.

To var izdarīt, izmantojot IF paziņojumu VBA. Uzrakstiet kodu kā IF Ws.Name “Main Sheet”. Pēc tam paslēpiet vai, ja tas ir vienāds ar lapas nosaukumu “Main Sheet”, tad neslēpiet.

5. solis: Tagad palaidiet kodu, izmantojot taustiņu F5, vai manuāli, pēc tam tas paslēps visu darblapu, izņemot to, kuras nosaukums ir “Galvenā lapa”.

3. piemērs - paslēpt visas lapas

Mēs esam redzējuši, kā paslēpt visas lapas, izņemot to, kurā atrodamies. Tāpat mēs varam paslēpt arī visas darblapas.

Mums vienkārši jāmaina kods no xlSheetVeryHidden uz xlSheetVisible.

Kods:

 Sub For_Each_Example3 () Dim Ws kā darblapa katrai W ActiveWorkbook darblapā. Darblapas Ws.Visible = xlSheetVisible Next Ws End Sub 

Šeit mums nav vajadzīgs IF nosacījums, jo mēs neslēpjam visas lapas. Ja nevēlaties paslēpt nevienu konkrētu lapu, varat izmantot nosacījumu IF un norādīt lapas nosaukumu.

4. piemērs - Aizsargājiet un noņemiet visu lapu aizsargu

Aizsargājiet visas lapas: mēs varam aizsargāt visas darbgrāmatas lapas tikai ar koda gabalu. Viss kods ir viens un tas pats, kas mums jādara šeit, nevis Ws. Redzams, mums jāievieto kods Ws. Aizsargājiet un ierakstiet paroli.

Kods:

 Sub For_Each_Example4 () Dim Ws kā darblapa katrai W ActiveWorkbook.Worksheets Ws.Aizsargāt paroli: = "Excel @ 2019" Next Ws End Sub 

Noņemt visu lapu aizsardzību: Izmantojot līdzīgu piezīmi, izmantojot vba, mēs varam arī aizsargāt visas lapas, kuras darbgrāmatā ir aizsargātas. Mums vienkārši jāievieto vārds Neaizsargāt un parole.

Kods:

 Sub For_Each_Example6 () Dim Ws kā darblapa katrai W ActiveWorkbook.Worksheet Ws.Neaizsargājiet paroli: = "Excel @ 2019" Next Ws End Sub 

Atceramās lietas

  • Katrs no tiem ir paredzēts priekšmetu kolekcijai.
  • Tas ņems vērā visus norādītos objektus norādītajā darbgrāmatā.
  • Deklarējot mainīgo, mums ir nepieciešams, uz kuru objektu mēs atsaucamies. Piemēram, darblapa, darbgrāmata, diagramma utt.

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