VBA munkalap törlése - Hogyan lehet törölni a munkalapot a VBA kód használatával?

Excel VBA munkalap törlése

Munkalap törlése a VBA-ban a Munkalap törlése módszerrel történik. A módszer alkalmazásához először meg kell határoznunk, hogy melyik lapot töröljük, a lap nevének hívásával. Két módszerünk van ugyanarra a műveletre: először közvetlenül a1.1.delete-t írjuk, a második módszer pedig a sheet (1.lap) .delete.

Tehát a szintaxis következik.

Munkalapok ("Munkalap neve"). Törlés

VAGY

Táblázatok ("Lap neve"). Törlés

Tehát először meg kell adnunk a lap nevét a Munkalap vagy a Táblázatok objektum használatával, majd később használhatjuk a „Törlés” módszert.

Hogyan lehet törölni az Excel lapokat a VBA kód használatával?

1. példa - Munkalap törlése a Név használatával

Tegyük fel, hogy sok lapja van, és az adott munkalap törléséhez meg kell említenünk a munkalapot annak nevével. Például 3 különböző lapom van: „Értékesítés 2016”, „Értékesítés 2017” és „Értékesítés 2018”.

Ha törölni akarom az „ Értékesítés 2017 ” nevű lapot , akkor meg kell említenem a lap nevét, mint az alábbiak.

Kód:

Sub Delete_Example1 () munkalapok ("2017. lapok"). End Sub

A munkalap nevének közvetlen megemlítésével kapcsolatos probléma, hogy nem látjuk a VBA IntelliSense listáját. A módszert egyébként „ Törlés” néven említik .

Kód:

Sub Delete_Example1 () munkalapok ("2017. lapok"). Delete Sub End törlése

Tehát ez törli az „ Értékesítés 2017 ” nevű lapot .

Hiba a munkalap törlésekor: Ha megpróbáljuk törölni a nem létező munkalapot, vagy ha tévesen említjük meg a munkalap nevét, akkor a VBA hibát Aláírási tartományon kívülre kapjuk .

A fentiekben azért kaptam az „Subscript Out of Range” hibát, mert a munkafüzetemben nincs „Sales 2017” nevű lapnév.

2. példa - Munkalap törlése a neve alapján a változókkal

Amint a fenti példában láthattuk, abban a pillanatban, amikor a Munkalapok objektum használatával hivatkozunk a munkalap nevére, nem látjuk az IntelliSense listát. Az IntelliSense lista megtekintéséhez változókat kell használnunk.

1. lépés: Először deklarálja a változót munkalapként .

Kód:

Sub Delete_Példa2 () Dim Ws mint munkalap vége Sub

2. lépés: Mivel a munkalap objektumváltozó, a változót a konkrét munkalapra kell állítanunk a „ SET ” szó használatával.

Kód:

Sub Delete_Példa2 () Dim Ws mint munkalapkészlet Ws = munkalapok ("Sales 2017") End Sub

Most a „Ws” változó a „Sales 2017” nevű munkalapra utal.

3. lépés: Most a „ Ws ” változóval hozzáférhetünk a munkalap összes IntelliSense listájához.

Kód:

Sub Delete_Példa2 () Dim Ws mint munkalapkészlet Ws = Worksheetets ("Értékesítés 2017") Ws. End Sub

4. lépés: Az IntelliSense listából válassza ki a „ Törlés ” módszert.

Kód:

Sub Delete_Példa2 () Dim Ws mint munkalapkészlet Ws = munkalapok ("Sales 2017") Ws. End Sub törlése

Így a változók segítségével elérhetjük az IntelliSense listát.

3. példa - Aktív munkalap törlése

Az Aktív lap nem más, mint az a munkalap, amely éppen aktív vagy kiválasztott. Ehhez a módszerhez nem kell megemlítenünk a munkalap nevét. Nézze meg például az alábbi VBA kódot.

ActiveSheet.Delete

Jelenleg az aktív lap az „Értékesítés 2017”.

Ha futtatom a kódot, akkor az törli az aktív lapot, vagyis a „Sales 2017” -t.

Most az „Értékesítés 2016” lehetőséget választom.

Most törli az aktív lapot, azaz az „Értékesítés 2016” -t.

Like this, we can use the “Active Sheet” object to delete the worksheet.

Note: To use this method, we need to absolutely sure of what we are doing with the Active Sheet and which sheet is going to be an active sheet.

Example #4 - Delete More than One Worksheet

In our above examples, we have seen how to delete a single sheet, but what if we have multiple worksheets? Let’s say we want to delete 10 worksheets.

We cannot keep writing 10 lines of code to delete the worksheet, so we need to use loops to loop through the collection of worksheets and delete them.

The below code will loop through the worksheets and delete all the worksheets in the workbook.

Code:

Sub Delete_Example2() Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets Ws.Delete Next Ws End Sub

A fenti kód hibát okoz, mert megpróbálja törölni a munkafüzet összes lapját. Tehát ennek elkerülése érdekében meg kell tartanunk legalább egy munkalapot.

Ha az összes munkalapot törölni akarjuk, kivéve az aktív lapot, akkor az alábbi kódot kell használnunk.

Kód:

Sub Delete_Példa2 () Dim Ws munkalapként az ActiveWorkbook minden egyes munkalapjához. Munkafüzetek, ha ActiveSheet.Név Ws.Név, majd Ws. Vége törlése, ha a következő Ws End al

Hasonlóképpen, ha nem egy konkrét munkalapot akarunk törölni, hanem az összes többi munkalapot, akkor használhatjuk az alábbi kódot.

Kód:

Sub Delete_Example2 () Dim Ws mint munkalap minden egyes W-hez az ActiveWorkbookban. Munkafüzetek, ha Ws.Name "Értékesítés 2018" Akkor 'Megváltoztathatja a Ws munkalap nevét.

A fenti kód az összes munkalapot törli, kivéve az „Értékesítés 2018” nevű munkalapot.

érdekes cikkek...