Hvordan bruke VBA for hver løkke? (med Excel-eksempler)

Innholdsfortegnelse

Excel VBA for hver løkke

VBA For Every Loop går gjennom hele samlingen av objekter eller gjenstander og utfører et lignende sett med aktiviteter. Det vil ta hensyn til alle tilgjengelige spesifiserte objekter og utføre instruert aktivitet i hvert objekt.

I VBA er det obligatorisk å forstå løkkene. En sløyfe lar deg utføre samme type aktivitet for mange celler eller objekter i excel. I dagens artikkel skal vi konsentrere oss om For Each Loop-mekanismen.

Syntaks

For hver løkke kan du gå gjennom hele settet med gjenstander eller gjenstander. En gruppe er bare "Alle de åpnede arbeidsbøkene", "Alle regnearkene i en arbeidsbok", "All samlingen av figurer og diagrammer i arbeidsboken."

La oss se på syntaksen.

For hvert objekt i samlingen Hva skal jeg gjøre? Neste objekt

For eksempel har du 10 ark i arbeidsboken din, og du vil skjule alle regnearkene bortsett fra den du er i. Kan du skjule manuelt? Ja, det kan du, men hva om du har 100 ark sånn? Er det ikke en kjedelig og tidkrevende oppgave å gjøre? Du kan gjøre dette ved hjelp av for hver løkke.

Hvordan bruke For Hver løkke i VBA? (Eksempler)

Eksempel 1 - Sett inn samme tekst i alle arkene

Vi vil se hvordan du bruker FOR HVER i VBA med et enkelt eksempel. Anta at du har 5 regneark i en arbeidsbok, og at du vil sette inn ordet "Hei" i alle regnearkene i celle A1.

Vi kan gjøre dette med FOR HVER LØKKE. En ting du må huske her er at vi utfører denne aktiviteten i hvert regneark, ikke i samme regneark. Følg trinnene nedenfor for å skrive VBA-koden.

Trinn 1: Start Excel-makroen.

Kode:

Sub For_Each_Example1 () Slutt Sub

Trinn 2: Siden vi refererer til regnearkene, erklærer du variabelen som "Regneark."

Kode:

Sub For_Each_Example1 () Dim Ws Som regneark End Sub

Trinn 3: Nå, ved å bruke FOR HVER LOOP, må vi henvise til hvert regneark i den aktive arbeidsboken.

Kode:

Sub For_Each_Example1 () Dim Ws som regneark for hver Ws i ActiveWorkbook. Arbeidsark Neste Ws End Sub

Trinn 4: Skriv nå hva vi vil gjøre i hvert regneark. I hvert regneark må vi sette ordet “Hei” i celle A1.

Kode:

Sub For_Each_Example1 () Dim Ws som regneark for hver Ws i ActiveWorkbook.Worksheets Ws.Range ("A1"). Verdi = "Hei" Neste Ws End Sub

Trinn 5: Kjør nå denne koden manuelt gjennom alternativet, eller trykk på hurtigtast F5. Det spiller ingen rolle hvor mange ark du har; det vil sette inn ordet "Hei" i alle regnearkene.

Eksempel 2 - Skjul alle arkene

Som fortalt tidligere i innlegget, hva om du har hundrevis av ark å skjule bortsett fra det du er i. Ved å bruke For hver løkke kan vi skjule alle arkene i Excel.

Trinn 1: Start makroen med navnet ditt.

Kode:

Sub For_Each_Example2 () End Sub

Trinn 2: Erklær variabelen som " Ws."

Kode:

Sub For_Each_Example2 () Dim Ws Som regneark End Sub

Trinn 3: Nå, i hvert regneark, må du skjule arket.

Kode:

Sub For_Each_Example2 () Dim Ws som regneark for hvert Ws i ActiveWorkbook.Worksheets Ws.Visible = xlSheetVeryHidden Neste Ws End Sub

Trinn 4: Men hvis du kjører ovennevnte kode, vil den prøve å skjule alle arkene, men excel trenger minst ett ark synlig. Så vi må fortelle hvilket ark som ikke skal skjules.

Kode:

Sub For_Each_Example2 () Dim Ws som regneark for hver Ws i ActiveWorkbook.Worksheets Hvis Ws.Name "Hovedark" Så Ws.Visible = xlSheetVeryHidden End Hvis neste Ws End Sub

Den operatør symbol midler som ikke er lik 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 av alle arkene : På et lignende notat, ved hjelp av VBA, kan vi også fjerne beskyttelsen av alle ark som er beskyttet i arbeidsboken. Vi må sette ordet Unprotect og passord.

Kode:

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

Ting å huske

  • Hver er for samling av gjenstander.
  • Den vil vurdere alle de spesifiserte objektene i den angitte arbeidsboken.
  • Mens vi deklarerer variabelen, trenger vi hvilket objekt vi refererer til, for eksempel arbeidsark, arbeidsbok, diagram osv.

Interessante artikler...