VBA ištrinti lapą | Kaip ištrinti darbalapį naudojant VBA kodą?

„Excel VBA“ ištrinti lapą

Norėdami ištrinti lapą VBA, mes ištriname darbalapį. Norėdami pirmiausia pritaikyti šį metodą, turime nustatyti, kurį lapą ištriname, paskambinę lapo pavadinimu. Mes turime du būdus daryti tą patį, pirmiausia mes tiesiogiai rašome sheet1.delete, o antrasis metodas yra sheet (sheet1) .delete.

Taigi seka sintaksė.

Darbalapiai („Darbalapio pavadinimas“). Ištrinti

ARBA

Lapai („Lapo pavadinimas“). Ištrinti

Taigi, pirmiausia turime nurodyti lapo pavadinimą naudodami „ Worksheet“ arba „ Sheets Object“, tada vėliau galime naudoti „Delete“ metodą.

Kaip ištrinti „Excel“ skaičiuokles naudojant VBA kodą?

Šį „VBA Delete Sheet Excel“ šabloną galite atsisiųsti čia - „VBA Delete Sheet Excel“ šablonas

1 pavyzdys - ištrinkite darbalapį naudodami jo pavadinimą

Tarkime, kad turite daug lapų ir norėdami ištrinti konkretų darbalapį, turime paminėti darbalapį pavadinimu. Pavyzdžiui, turiu 3 skirtingus lapus, pavadintus „Pardavimai 2016“, „Pardavimai 2017“ ir „Pardavimai 2018“.

Jei noriu ištrinti lapą pavadinimu „ Pardavimai 2017 “, turiu paminėti lapo pavadinimą, kaip nurodyta toliau.

Kodas:

Sub Delete_Example1 () darbalapiai („2017 m. Lapai“). Pabaigos sub

Problemos, susijusios su darbalapio pavadinimo paminėjimu tiesiogiai, nematome VBA „IntelliSense“ sąrašo. Bet kokiu atveju paminėkite metodą kaip „ Ištrinti “.

Kodas:

Sub Delete_Example1 () darbalapiai („2017 m. Lapai“). Ištrinti pabaigos antrinę dalį

Taigi tai ištrins lapą, pavadintą „ Pardavimai 2017 “.

Klaida ištrinant darbalapį: Jei bandysime ištrinti neegzistuojantį darbalapį arba neteisingai paminėsime darbalapio pavadinimą, gausime vba klaidą kaip „Subscript Out Range“.

Iš to, kas išdėstyta pirmiau, gavau klaidą „Subscript Out of Range“, nes mano darbaknygėje nėra lapo pavadinimo „Sales 2017“.

2 pavyzdys - ištrinkite darbalapį pagal jo pavadinimą su kintamaisiais

Kaip matėme aukščiau pateiktą pavyzdį tuo metu, kai nurodome darbalapio pavadinimą naudodami objektą „Darbalapiai“, nematome „IntelliSense“ sąrašo. Norėdami pamatyti „IntelliSense“ sąrašą, turime naudoti kintamuosius.

1 žingsnis: Pirmiausia paskelbkite kintamąjį kaip darbalapį .

Kodas:

 Sub Delete_Pavyzdys2 () Dim Ws kaip darbalapio pabaigos sub 

2 žingsnis: Kadangi darbalapis yra objekto kintamasis, mes turime nustatyti kintamąjį pagal konkretų darbalapį, naudodami žodį „ SET “.

Kodas:

 Sub Delete_Pavyzdys2 () Dim Ws kaip darbalapio rinkinys Ws = Worksheet ("Pardavimai 2017") Pabaiga Sub 

Dabar kintamasis „Ws“ nurodo darbalapį, pavadintą „Pardavimai 2017“.

3 žingsnis: Dabar naudodami kintamąjį „ Ws “, mes galime pasiekti visą „IntelliSense“ darbalapio sąrašą.

Kodas:

Sub Delete_Pavyzdys2 () Dim Ws kaip darbalapio rinkinys Ws = Worksheet ("Sales 2017") Ws. Pabaigos sub

4 žingsnis: Iš „IntelliSense“ sąrašo pasirinkite „ Ištrinti “ metodą.

Kodas:

 Sub Delete_Pavyzdys2 () Dim Ws kaip darbalapio rinkinys Ws = darbalapiai ("Sales 2017") Ws. Ištrinti pabaigos antrinę dalį 

Panašiai naudodami kintamuosius, galime pasiekti „IntelliSense“ sąrašą.

3 pavyzdys - ištrinkite aktyvų darbalapį

Aktyvus lapas yra ne kas kitas, o tuo metu aktyvus ar pasirinktas darbalapis. Taikant šį metodą, nereikia paminėti darbalapio pavadinimo. Pavyzdžiui, pažvelkite į žemiau esantį VBA kodą.

„ActiveSheet“. Ištrinti

Šiuo metu aktyvus lapas yra „Pardavimai 2017“.

Jei paleisiu kodą, jis ištrins aktyvų lapą, ty „Pardavimai 2017“.

Dabar pasirenku „Pardavimai 2016“.

Dabar jis ištrins aktyvų lapą, ty „Pardavimai 2016“.

Panašiai mes galime naudoti objektą „Aktyvus lapas“, kad ištrintume darbalapį.

Pastaba: Norėdami naudoti šį metodą, turime būti visiškai tikri, ką darome su „Active Sheet“ ir kuris lapas bus aktyvus.

4 pavyzdys - ištrinkite daugiau nei vieną darbalapį

Ankstesniuose pavyzdžiuose matėme, kaip ištrinti vieną lapą, bet kas, jei turime kelis darbalapius, tarkime, kad norime ištrinti 10 darbalapių.

Negalime toliau rašyti 10 eilučių kodo, kad ištrintume darbalapį, todėl turime naudoti kilpas, kad galėtumėte pereiti prie darbalapių rinkinio ir juos ištrinti.

Žemiau pateiktas kodas peržvelgs darbalapius ir ištrins visus darbaknygės darbalapius.

Kodas:

 Sub Delete_Pavyzdys2 () „Dim Ws“ kaip kiekvieno „ActiveWorkbook“ darbo lapo darbalapis. Darbo lapai Ws. Ištrinti kitas Ws End Sub 

Minėtas kodas sukels klaidą, nes jis bando ištrinti visus darbaknygės lapus. Taigi, kad to išvengtume, turime išsaugoti bent vieną darbalapį.

Jei norime ištrinti visus darbalapius, išskyrus aktyvųjį lapą, turime naudoti žemiau pateiktą kodą.

Kodas:

 Sub Delete_Pavyzdys2 () Dim Ws kaip kiekvieno Ws darbalapį „ActiveWorkbook“. Darbo lapai, jei „ActiveSheet“. Pavadinimas Ws.Name Tada Ws. Ištrinti pabaigą, jei kitas Ws pabaiga Sub 

Panašiai, jei nenorime ištrinti konkretaus darbalapio, bet ištrinti visus kitus darbalapius, galime naudoti žemiau esantį kodą.

Kodas:

 Panaikinti_pavyzdys2 () „Dim Ws“, kaip kiekvieno „ActiveWorkbook“ darbo lapą. Darbo lapai, jei „Ws.name“ Pardavimai 2018 “, tada galite pakeisti darbalapio pavadinimą Ws. Ištrinti pabaigą, jei kitas Ws pabaiga 

Aukščiau pateiktas kodas ištrins visus darbalapius, išskyrus darbalapį, pavadintą „Pardavimai 2018“.