VBA Kustuta leht - Kuidas VBA-koodi abil töölehte kustutada?

Lang L: none (table-of-contents)

Exceli VBA lehe kustutamine

Lehe kustutamiseks VBA-s oleme töölehe kustutamise meetod. Selle meetodi rakendamiseks peame lehe nimele helistades tuvastama, millise lehe kustutame. Meil on sama meetodi tegemiseks kaks meetodit: kõigepealt kirjutame otse lehe1.delete ja teine ​​meetod on lehed (sheet1) .delete.

Seega järgneb süntaks.

Töölehed ("Töölehe nimi"). Kustuta

VÕI

Lehed ("lehe nimi"). Kustuta

Niisiis, esimene, peame täpsustama lehe nimi, kasutades kas Tööleht või lehed objekt, siis hiljem, saame kasutada "Delete" meetodit.

Kuidas kustutada Exceli arvutustabeleid VBA-koodi abil?

Näide # 1 - töölehe kustutamine selle nime abil

Oletame, et teil on palju lehti ja konkreetse töölehe kustutamiseks peame mainima töölehte selle nime järgi. Näiteks on mul 3 erinevat lehte nimedega “Müük 2016”, “Müük 2017” ja “Müük 2018”.

Kui ma tahan kustutada lehe nimega “ Müük 2017 ”, pean mainima lehe nime nagu allpool.

Kood:

Alam Kustuta_näide1 () töölehed ("lehed 2017"). Lõpeta alam

Töölehe nime otsese mainimise probleem ei näe me VBA IntelliSense'i loendit. Igatahes mainige meetodit kui „ Kustuta“.

Kood:

Alam Kustuta_näide1 () töölehed ("lehed 2017"). Kustuta Lõpeta alam

Nii kustutatakse leht nimega „ Müük 2017 “.

Viga töölehe kustutamisel: kui proovime kustutada töölehte, mida pole olemas, või kui nimetame töölehe nime valesti, saame VBA tõrke kui „Alaindeks vahemikust välja.”

Eeltoodust sain vea „Subscripti vahemikust välja”, kuna minu töövihikus pole lehenime nimega „Müük 2017”.

Näide # 2 - töölehe kustutamine selle nime ja muutujate järgi

Nagu näeme ülaltoodud näites, ei saa me IntelliSense'i loendit näha hetkel, kui viidame töölehe nimele objekti Töölehed abil. IntelliSense'i loendi nägemiseks peame kasutama muutujaid.

1. samm: esiteks deklareerige muutuja tööleheks .

Kood:

Alam Kustuta_näide2 () Dim Ws töölehe lõpu alamnahana

2. samm: kuna tööleht on objekti muutuja, peame muutuja määrama konkreetsele töölehele, kasutades sõna “ SET ”.

Kood:

Alam Kustuta_näide2 () Hämarda Ws töölehekomplektina Ws = töölehed ("Müük 2017") Lõpp alam

Nüüd viitab muutuja “Ws” töölehele nimega “Müük 2017”.

3. samm: muutuja “ Ws ” abil pääseme nüüd töölehe kõigi IntelliSense'i loendisse.

Kood:

Alam Kustuta_näide2 () Hämarda Ws töölehtena Ws = töölehed ("Müük 2017") Ws. Lõpeta alam

4. samm: valige loendist IntelliSense loendist meetod „ Kustuta ”.

Kood:

Alam Kustuta_näide2 () Hämarda Ws töölehekomplektina Ws = töölehed ("Müük 2017") Ws. Kustuta lõpu alam

Niimoodi muutujate abil pääseme juurde IntelliSense'i nimekirja.

Näide # 3 - aktiivse töölehe kustutamine

Aktiivne leht pole muud kui ükski aktiivne või valitud tööleht. Selle meetodi puhul ei pea me nimetama töölehe nime. Näiteks vaadake allpool olevat VBA-koodi.

ActiveSheet.Kustuta

Praegu on aktiivne leht „Müük 2017”.

Kui käivitan koodi, kustutab see aktiivse lehe, st “Müük 2017”.

Nüüd valin “Müük 2016”.

Nüüd kustutab see aktiivse lehe, st “Müük 2016”.

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

Ülaltoodud kood viskab tõrke, kuna see proovib töövihikust kõik lehed kustutada. Nii et selle vältimiseks peame säilitama vähemalt ühe töölehe.

Kui soovime kustutada kõik töölehed, välja arvatud aktiivne leht, peame kasutama allolevat koodi.

Kood:

Alam Kustuta_näide2 () Hämarda Ws iga ActiveWorkbooki W-le töölehena. Töölehed, kui ActiveSheet.Nimi Ws.Nimi Siis Ws.Kustuta lõpp, kui Järgmine

Samamoodi, kui me ei soovi kustutada konkreetset töölehte, vaid kustutada kõik muud töölehed, siis saame kasutada allolevat koodi.

Kood:

Alam Kustuta_näide2 () Hämarda Ws iga W-i töölehena ActiveWorkbookis. Töölehed, kui Ws.Name "Müük 2018" Siis "Saate muuta töölehe nime Ws. Kustuta lõpp, kui järgmine Ws End Sub

Ülaltoodud kood kustutab kõik töölehed, välja arvatud tööleht nimega “Müük 2018”.

Huvitavad Artiklid...