Kako koristiti VBA za svaku petlju? (s primjerima Excela)

Excel VBA za svaku petlju

VBA For Every Loop prolazi kroz svu kolekciju predmeta ili predmeta i izvodi sličan skup aktivnosti. Uzet će se u obzir svi dostupni navedeni objekti i izvršiti zadane aktivnosti u svakom objektu.

U VBA je obvezno razumijevanje petlji. Petlja vam omogućuje provođenje iste vrste aktivnosti za mnoge stanice ili predmete u Excelu. U današnjem ćemo se članku usredotočiti na mehanizam Za svaku petlju.

Sintaksa

Za svaku petlju može se petljati kroz sve postavljene zbirke predmeta ili predmeta. Grupa nije ništa drugo do "Sve otvorene radne bilježnice", "Svi radni listovi u radnoj bilježnici", "Sva zbirka oblika i grafikona u radnoj knjižici."

Pogledajmo sintaksu.

Što učiniti za svaki objekt u zbirci? Sljedeći objekt

Na primjer, u radnoj knjizi imate 10 listova i želite sakriti sve radne listove osim onog u kojem se nalazite. Možete li sakriti ručno? Da, možete, ali što ako imate 100 takvih listova? Nije li to dosadan i dugotrajan zadatak? To možete učiniti pomoću svake petlje.

Kako koristiti za svaku petlju u VBA? (Primjeri)

Primjer # 1 - Umetnite isti tekst u sve listove

Vidjet ćemo kako se za SVAKOGA koristiti u VBA na jednostavnom primjeru. Pretpostavimo da imate 5 radnih listova u radnoj knjizi i da želite umetnuti riječ "Zdravo" u sve radne listove u ćeliji A1.

To možemo učiniti sa SVAKOM petljom. Ovdje morate imati na umu da ovu aktivnost izvodimo na svakom radnom listu, a ne na istom radnom listu. Slijedite korake u nastavku za pisanje VBA koda.

Korak 1: Pokrenite excel makronaredbu.

Kodirati:

Sub For_Each_Example1 () Kraj Sub

Korak 2: Budući da se pozivamo na radne listove, proglasite varijablu kao "Radni list".

Kodirati:

Sub For_Each_Example1 () Dim Ws as Worksheet End Sub

Korak 3: Sada, koristeći FOR EACH LOOP, moramo uputiti svaki radni list u aktivnu radnu knjigu.

Kodirati:

Pod For_Each_Example1 () Zatamni W kao radni list za svaki Ws u ActiveWorkbook.Radni listovi Sljedeći Ws Kraj Sub

Korak 4: Sada na svaki radni list napišite što želimo učiniti. U svaki radni list trebamo staviti riječ "Zdravo" u ćeliju A1.

Kodirati:

Sub For_Each_Example1 () Zatamni W kao radni list za svaki Ws u ActiveWorkbook.Radni listovi Ws.Range ("A1"). Value = "Hello" Next Ws End Sub

Korak 5: Sada pokrenite ovaj kod ručno putem opcije ili pritisnite tipku prečaca F5. Nije važno koliko listova imate; ubacit će riječ "Zdravo" u sve radne listove.

Primjer # 2 - Sakrij sve listove

Kao što je rečeno ranije u postu, što ako imate stotine listova za skrivanje, osim onog u kojem se nalazite. Korištenje Za svaku petlju možemo sakriti sve listove u excelu.

Korak 1: Pokrenite makronaredbu svojim imenom.

Kodirati:

Sub For_Each_Example2 () Kraj Sub

Korak 2: Proglasite varijablu kao " Ws".

Kodirati:

Sub For_Each_Example2 () Dim Ws as Worksheet End Sub

Korak 3: Sada na svakom radnom listu trebate sakriti list.

Kodirati:

Sub For_Each_Example2 () Zatamni W kao radni list za svaki Ws u ActiveWorkbook.Worksheets Ws.Visible = xlSheetVeryHidden Next Ws End Sub

Korak 4: Ali ako pokrenete gornji kod, pokušat će sakriti sve listove, ali Excelu je potreban barem jedan list vidljiv. Stoga moramo reći koji list ne treba sakriti.

Kodirati:

Sub For_Each_Example2 () Zatamni W kao radni list za svaki Ws u ActiveWorkbook.Worksheets If Ws.Name "Main Sheet" then Ws.Visible = xlSheetVeryHidden End If Next Ws End Sub

Simbol operatora znači da nije jednak 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

Otkažite zaštitu svim listovima: Na sličnoj bilješci, pomoću VBA, također možemo ukloniti zaštitu svih listova zaštićenih u radnoj knjizi. Moramo staviti riječ Unprotect i lozinku.

Kodirati:

Pod For_Each_Example6 () Zatamni W kao radni list za svaki Ws u ActiveWorkbook.Radni listovi Ws.Unprotect Password: = "Excel @ 2019" Sljedeći Ws End Sub

Stvari koje treba zapamtiti

  • Svaka je za prikupljanje predmeta.
  • Razmotrit će sve navedene objekte u navedenoj radnoj knjizi.
  • Dok deklariramo varijablu, trebamo na koji se objekt pozivamo - na primjer, radni list, radna knjiga, grafikon itd.

Zanimljivi članci...