Hvordan bruges VBA til hver løkke? (med Excel-eksempler)

Indholdsfortegnelse

Excel VBA for hver løkke

VBA For Every Loop gennemgår hele samlingen af ​​objekter eller genstande og udfører et lignende sæt af aktiviteter. Den tager hensyn til alle de tilgængelige specificerede objekter og udfører instrueret aktivitet i hvert objekt.

I VBA er det obligatorisk at forstå sløjferne. En sløjfe giver dig mulighed for at udføre den samme slags aktivitet for mange celler eller objekter i excel. I dagens artikel vil vi koncentrere os om For Every Loop-mekanismen.

Syntaks

For hver sløjfe kan løbe gennem hele den samlede samling af objekter eller genstande. En gruppe er intet andet end "Alle de åbnede projektmapper", "Alle regneark i en projektmappe", "Al samling af figurer og diagrammer i projektmappen."

Lad os se på syntaksen.

For hvert objekt i samlingen Hvad skal jeg gøre? Næste objekt

For eksempel har du 10 ark i din projektmappe, og du vil skjule alle regnearkene undtagen det, du er i. Kan du skjule manuelt? Ja, det kan du, men hvad nu hvis du har sådan 100 ark? Er det ikke en kedelig og tidskrævende opgave at gøre? Du kan gøre dette ved hjælp af for hver løkke.

Hvordan bruges til hver løkke i VBA? (Eksempler)

Eksempel # 1 - Indsæt samme tekst i alle arkene

Vi vil se, hvordan man bruger FOR HVER i VBA med et simpelt eksempel. Antag, at du har 5 regneark i en projektmappe, og at du vil indsætte ordet "Hej" i alle regnearkene i celle A1.

Vi kan gøre dette med FOR EACH LOOP. En ting, du skal huske her, er, at vi udfører denne aktivitet i hvert regneark, ikke i det samme regneark. Følg nedenstående trin for at skrive VBA-koden.

Trin 1: Start Excel-makroen.

Kode:

Sub For_Each_Example1 () Afslut Sub

Trin 2: Da vi henviser til regnearket, skal du erklære variablen som "Arbejdsark".

Kode:

Sub For_Each_Example1 () Dim Ws Som regneark End Sub

Trin 3: Nu skal vi bruge FOR EACH LOOP til at henvise hvert regneark i den aktive projektmappe.

Kode:

Sub For_Each_Example1 () Dim Ws som regneark for hver Ws i ActiveWorkbook. Arbejdsark Næste Ws End Sub

Trin 4: Skriv nu, hvad vi vil gøre i hvert regneark. I hvert regneark er vi nødt til at sætte ordet "Hej" i celle A1.

Kode:

Sub For_Each_Example1 () Dim Ws som regneark for hver Ws i ActiveWorkbook.Worksheets Ws.Range ("A1"). Value = "Hej" Næste Ws End Sub

Trin 5: Kør nu denne kode manuelt gennem option eller tryk på genvejstast F5. Det betyder ikke noget, hvor mange ark du har; det indsætter ordet “Hej” i alle regnearkene.

Eksempel # 2 - Skjul alle arkene

Som fortalt tidligere i indlægget, hvad nu hvis du har hundredvis af ark at skjule undtagen det du befinder dig i. Brug af For hver løkke kan vi skjule alle arkene i Excel.

Trin 1: Start makroen med dit navn.

Kode:

Sub For_Each_Example2 () Afslut Sub

Trin 2: Erklær variablen som " Ws."

Kode:

Sub For_Each_Example2 () Dim Ws Som regneark End Sub

Trin 3: Nu skal du i hvert regneark skjule arket.

Kode:

Under For_Each_Example2 () Dim Ws som regneark for hver Ws i ActiveWorkbook.Worksheets Ws.Visible = xlSheetVeryHidden Next Ws End Sub

Trin 4: Men hvis du kører ovenstående kode, forsøger den at skjule alle arkene, men excel har brug for mindst et ark synligt. Så vi er nødt til at fortælle, hvilket ark der ikke skal skjules.

Kode:

Sub For_Each_Example2 () Dim Ws som regneark for hver Ws i ActiveWorkbook.Worksheets Hvis Ws.Name "Main Sheet" Så Ws.Visible = xlSheetVeryHidden End Hvis næste Ws End Sub

De operatør symbol midler ikke lig med i 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

Fjern beskyttelse af alle ark: På en lignende note ved hjælp af VBA kan vi også fjerne beskyttelsen af ​​alle ark, der er beskyttet i projektmappen. Vi er nødt til at sætte ordet Unprotect og password.

Kode:

Sub For_Each_Example6 () Dim Ws som regneark for hver Ws i ActiveWorkbook.Worksheets Ws.Unprotect Password: = "Excel @ 2019" Næste Ws End Sub

Ting at huske

  • Hver er til samling af objekter.
  • Den overvejer alle de specificerede objekter i den angivne projektmappe.
  • Mens vi erklærer variablen, er vi nødt til hvilket objekt vi henviser til - for eksempel regneark, projektmappe, diagram osv.

Interessante artikler...