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

Satura rādītājs

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 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

Katrai cilpai var cilpot visu iestatīto objektu vai priekšmetu kolekciju. Grupa 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 jūs vēlaties paslēpt visas darblapas, izņemot to, kurā atrodaties. Vai varat paslēpt manuāli? Jā, jūs varat, bet ja jums ir 100 tādas lapas? Vai tas nav garlaicīgs un laikietilpīgs uzdevums? To var izdarīt, izmantojot katru cilpu.

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

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 visās šūnā A1 esošajās darblapās vēlaties ievietot vārdu “Labdien”.

Mēs to varam izdarīt, KATRAM LOKAM. Viena lieta, kas jums jāatceras, ir tā, ka mēs šo darbību veicam 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. darbība. 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 jums ir lapu; tas visās darblapās ievietos vārdu “Labdien”.

2. piemērs - paslēpt visas lapas

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

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

Kods:

Sub_Each_Example2 () Apakšdaļa

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

Kods:

Sub For_Each_Example2() Dim Ws As Worksheet End Sub

Step 3: Now, in each worksheet, what you need to do is hide the sheet.

Code:

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

Step 4: But if you run the above code, it will try to hide all the sheets, but excel needs at least one sheet visible. So we need to tell which sheet not to hide.

Code:

Sub For_Each_Example2() Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets If Ws.Name "Main Sheet" Then Ws.Visible = xlSheetVeryHidden End If Next Ws End Sub

The operator symbol means not equal to in 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

Noņemt visu lapu aizsardzību: Izmantojot līdzīgu piezīmi, izmantojot VBA, mēs varam arī aizsargāt visas darbgrāmatā aizsargātās lapas. Mums ir jāliek vārds Unprotect un parole.

Kods:

Sub For_Each_Example6 () Dim Ws kā darblapa katram 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.

Interesanti raksti...