Hogyan kell használni a VBA-t minden hurokhoz? (Excel példákkal)

Tartalomjegyzék

Excel VBA minden hurokhoz

A VBA minden hurok számára elvégzi az objektumok vagy tárgyak összes gyűjteményét, és hasonló tevékenységeket végez. Figyelembe veszi az összes rendelkezésre álló meghatározott objektumot, és minden objektumban utasításos tevékenységet hajt végre.

A VBA-ban kötelező megérteni a hurkokat. A hurok lehetővé teszi, hogy ugyanolyan típusú tevékenységet hajtson végre az Excel összes cellájában vagy objektumában. A mai cikkben az egyes hurok mechanizmusra fogunk koncentrálni.

Szintaxis

Minden hurok végigvezetheti az összes beállított objektum- vagy elemgyűjteményt. A csoport nem más, mint „Az összes megnyitott munkafüzet”, „A munkafüzet összes munkalapja”, „A munkafüzet összes formája és diagramja”.

Nézzük meg a szintaxist.

A gyűjtemény minden objektumához mit kell tenni? Következő objektum

Például 10 lapja van a munkafüzetében, és el akarja rejteni az összes munkalapot, kivéve azt, amelyikben van. Elrejtheti manuálisan? Igen, lehet, de mi van, ha van 100 ilyen lapod? Nem unalmas és időigényes feladat ez? Ezt megteheti az egyes hurkokhoz.

Hogyan kell használni az egyes hurkokhoz a VBA-ban? (Példák)

1. példa - Helyezze be ugyanazt a szöveget az összes munkalapba

Meglátjuk, hogyan lehet MINDENNEK használni a VBA-ban egy egyszerű példával. Tegyük fel, hogy 5 munkalapja van egy munkafüzetben, és be akarja illeszteni a „Hello” szót az A1 cellába az összes munkalapba.

Ezt megtehetjük MINDEN HOGYAN. Egy dologra emlékeztetnie kell, hogy ezt a tevékenységet minden munkalapon végezzük, nem ugyanazon a munkalapon. Kövesse az alábbi lépéseket a VBA kód megírásához.

1. lépés: Indítsa el az Excel makrót.

Kód:

Sub For_Each_Example1 () End Sub

2. lépés: Mivel a munkalapokra hivatkozunk, deklarálja a változót „munkalapnak”.

Kód:

Sub For_Each_Example1 () Dim Ws mint munkalap vége

3. lépés: Most, az EGY LOOP használatával, hivatkoznunk kell az egyes munkalapokra az aktív munkafüzetben.

Kód:

Sub For_Each_Example1 () Dim Ws munkalapként minden W-hez az ActiveWorkbookban. Munkalapok Next Ws End Sub

4. lépés: Most írja be, mit akarunk csinálni az egyes munkalapokba. Minden munkalapon be kell tennünk a „Hello” szót az A1 cellába.

Kód:

Sub For_Each_Example1 () Dim Ws mint munkalap minden egyes W-hez az ActiveWorkbook.Worksheets Ws.Range ("A1") értékben. Érték = "Hello" Next Ws End Sub

5. lépés: Most futtassa ezt a kódot manuálisan az opción keresztül, vagy nyomja meg az F5 gyorsbillentyűt. Nem számít, hány lapod van; minden munkalapra beilleszti a „Hello” szót.

2. példa - Az összes lap elrejtése

Amint azt a bejegyzésben korábban elmondtuk, mi van akkor, ha több száz lapot kell elrejteni, kivéve azt, amelyiken belül van. Az egyes ciklusok esetén az összes lapot elrejthetjük az excelben.

1. lépés: Indítsa el a makrót a nevével.

Kód:

Sub For_Each_Example2 () End Sub

2. lépés: Nyújtsa be a változót „ Ws” -nek .

Kód:

Sub For_Each_Example2 () Dim Ws mint munkalap vége

3. lépés: Most minden munkalapon el kell rejteni a lapot.

Kód:

Sub For_Each_Example2 () Dim Ws mint munkalap az ActiveWorkbook minden egyes W-jéhez. Worksheet Ws.Visible = xlSheetVeryHidden Next Ws End Sub

4. lépés: De ha futtatja a fenti kódot, akkor megpróbálja elrejteni az összes lapot, de az excelnek legalább egy látható lapra van szüksége. Tehát meg kell mondanunk, hogy melyik lapot ne rejtsük el.

Kód:

Sub For_Each_Example2 () Dim Ws, mint munkalap minden W-hez az ActiveWorkbookban. Munkafüzetek, ha Ws.Name "Fő lap", akkor Ws.Visible = xlSheetVeryHidden End, ha a következő Ws End al

Az operátor szimbólum azt jelenti, hogy nem egyenlő a VBA-val .

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

Az összes lap védelemének megszüntetése: Hasonló megjegyzés: a VBA használatával a munkafüzetben védett összes lapot is megvédhetjük. Ki kell tennünk az Unprotect és a password szót.

Kód:

Sub For_Each_Example6 () Dim Ws munkalapként minden W-hez az ActiveWorkbookban. Munkafüzetek Ws. Jelszó védtelenítése: = "Excel @ 2019" Next Ws End Sub

Dolgok, amikre emlékezni kell

  • Mindegyik tárgy gyűjtésére szolgál.
  • Figyelembe veszi a megadott munkafüzet összes megadott objektumát.
  • A változó deklarálása során meg kell adnunk, hogy melyik objektumra hivatkozunk - például Munkalap, Munkafüzet, Diagram stb.

érdekes cikkek...