VBA lehe kustutamine | Kuidas VBA-koodi abil töölehte kustutada?

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 (leht1) .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?

Selle VBA Delete Sheet Exceli malli saate alla laadida siit - VBA Delete Sheet Exceli mall

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 ”, siis 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õpu alam

Nii kustutatakse leht, mille nimi on „ Müük 2017 “.

Töölehe kustutamisel tekkis viga: kui proovime kustutada töölehte, mida pole olemas, või kui mainime töölehe nime valesti, saame vba tõrke kui „Alaindeks vahemikust väljas”.

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

Kuna oleme ülaltoodud näidet näinud hetkel, kui viidame töölehe nimele objekti Töölehed abil, ei näe me IntelliSense'i loendit. IntelliSense'i loendi nägemiseks peame kasutama muutujaid.

1. samm: deklareerige muutuja kõigepealt tööleheks .

Kood:

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

2. samm: Kuna tööleht on objektimuutuja, 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, mille nimi on “Müük 2017”.

3. samm: muutuja “ Ws ” abil pääseme juurde töölehe kõigile IntelliSense'i loenditele.

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 loendisse.

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”.

Niimoodi saame töölehe kustutamiseks kasutada objekti „Active Sheet”.

Märkus. Selle meetodi kasutamiseks peame olema täiesti kindlad selles, mida me aktiivse lehega teeme ja milline leht saab olema aktiivne leht.

Näide # 4 - kustutage mitu töölehte

Oma ülaltoodud näidetes oleme näinud, kuidas kustutada üks leht, aga mis siis, kui meil on mitu töölehte, oletame, et soovime kustutada 10 töölehte.

Töölehe kustutamiseks ei saa me jätkata 10 koodirea kirjutamist, seega peame töölehtede kogu läbimiseks ja nende kustutamiseks kasutama tsükleid.

Allpool olev kood viib töölehed läbi ja kustutab kõik töövihikus olevad töölehed.

Kood:

 Sub Delete_Example2 () Dim Ws töölehena ActiveWorkbooki iga W jaoks. Töölehed Ws. Kustuta järgmised Ws End Sub 

Ülaltoodud kood viskab tõrke, kuna see üritab 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õpeta, kui Järgmine Ws End Sub 

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

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õpeta, kui järgmine Ws End Sub 

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


$config[zx-auto] not found$config[zx-overlay] not found