VBA dzēst lapu | Kā izdzēst darblapu, izmantojot VBA kodu?

Excel VBA dzēst lapu

Lai izdzēstu lapu VBA, mēs izdzēšam darblapu. Lai vispirms izmantotu šo metodi, mums jānosaka, kuru lapu mēs izdzēšam, izsaucot lapas nosaukumu. Mums ir divas metodes, kā darīt to pašu, vispirms mēs tieši uzrakstām sheet1.delete un otrā metode ir sheet (sheet1) .delete.

Tātad seko sintakse.

Darblapas ("Darblapas nosaukums"). Dzēst

VAI

Izklājlapas ("Lapas nosaukums"). Dzēst

Tātad, vispirms mums jānorāda lapas nosaukums, izmantojot vai nu darblapu, vai izklājlapu objektu, pēc tam mēs varam izmantot metodi “Dzēst” .

Kā izdzēst Excel lapas, izmantojot VBA kodu?

Šo VBA Delete Sheet Excel veidni varat lejupielādēt šeit - VBA Delete Sheet Excel veidne

1. piemērs - dzēsiet darblapu, izmantojot tās nosaukumu

Pieņemsim, ka jums ir daudz lapu, un, lai izdzēstu konkrēto darblapu, mums tā jāpiemin. Piemēram, man ir 3 dažādas lapas ar nosaukumu “Pārdošana 2016”, “Pārdošana 2017” un “Pārdošana 2018”.

Ja es vēlos izdzēst lapu ar nosaukumu “ Pārdošana 2017 ”, man ir jāpiemin lapas nosaukums, kā norādīts zemāk.

Kods:

Sub Delete_Example1 () darblapas ("lapas 2017"). Beigu apakš

Problēma ar darblapas nosaukuma tiešu pieminēšanu mēs neredzam VBA IntelliSense sarakstu. Jebkurā gadījumā miniet metodi kā “ Dzēst ”.

Kods:

Sub Delete_Example1 () darblapas ("lapas 2017"). Dzēst beigu apakšdaļu

Tādējādi tiks izdzēsta lapa ar nosaukumu “ Pārdošana 2017 ”.

Kļūda, izdzēšot darblapu: Ja mēs mēģinām izdzēst darblapu, kuras nav, vai arī, ja darblapas nosaukumu pieminam nepareizi, mēs saņemsim vba kļūdu kā “Subscript Out of Range”.

Iepriekš minētajā gadījumā es saņēmu kļūdu “Subscript Out of Range”, jo manā darbgrāmatā nav neviena lapas nosaukuma ar nosaukumu “Sales 2017”.

2. piemērs - dzēsiet darblapu pēc nosaukuma ar mainīgajiem

Kā mēs redzējām iepriekš minēto piemēru brīdī, kad mēs atsaucamies uz darblapas nosaukumu, izmantojot objektu Worksheet, mēs neredzam IntelliSense sarakstu. Lai apskatītu IntelliSense sarakstu, mums jāizmanto mainīgie.

1. darbība: vispirms deklarējiet mainīgo kā darblapu .

Kods:

 Sub Delete_Example2 () Dim Ws kā darblapas beigu apakšsadaļa 

2. solis: Tā kā darblapa ir objekta mainīgais, mums jāiestata mainīgais uz konkrēto darblapu, izmantojot vārdu “ SET ”.

Kods:

 Sub Delete_Example2 () Dim Ws kā darblapu kopa Ws = Worksheet ("Sales 2017") Beigas Sub 

Tagad mainīgais “Ws” attiecas uz darblapu ar nosaukumu “Pārdošana 2017”.

3. solis: Tagad, izmantojot mainīgo “ Ws ”, mēs varam piekļūt visam IntelliSense darblapas sarakstam.

Kods:

Sub Delete_Example2 () Dim Ws kā darblapu kopa Ws = darblapas ("Sales 2017") Ws. Beigu apakš

4. solis: IntelliSense sarakstā atlasiet metodi “ Dzēst ”.

Kods:

 Sub Delete_Example2 () Dim Ws kā darblapu kopa Ws = darblapas ("Sales 2017") Ws. Dzēst beigu apakšdaļu 

Šādi izmantojot mainīgos, mēs varam piekļūt IntelliSense sarakstam.

3. piemērs - dzēst aktīvo darblapu

Aktīvā lapa nav nekas cits kā tā, kas pašlaik ir aktīva vai atlasīta darblapa. Šajā metodē mums nav jāpiemin darblapas nosaukums. Piemēram, apskatiet zemāk redzamo VBA kodu.

ActiveSheet.Delete

Pašlaik aktīvā lapa ir “Pārdošana 2017”.

Ja palaidīšu kodu, tā izdzēsīs aktīvo lapu, ti, “Pārdošana 2017”.

Tagad es izvēlēšos “Pārdošana 2016”.

Tagad tā izdzēsīs aktīvo lapu, ti, “Pārdošana 2016”.

Šādi mēs varam izmantot objektu “Aktīvā lapa”, lai izdzēstu darblapu.

Piezīme: Lai izmantotu šo metodi, mums ir jābūt pilnīgi pārliecinātiem par to, ko mēs darām ar aktīvo lapu un kura lapa būs aktīva lapa.

4. piemērs - izdzēsiet vairāk nekā vienu darblapu

Iepriekš minētajos piemēros mēs redzējām, kā izdzēst vienu lapu, bet, ja mums ir vairākas darblapas, pieņemsim, ka mēs vēlamies izdzēst 10 darblapas.

Mēs nevaram turpināt rakstīt 10 koda rindas, lai izdzēstu darblapu, tāpēc mums ir jāizmanto cilpas, lai pārietu cauri darblapu kolekcijai un tās izdzēstu.

Zem koda tiks apskatītas darblapas un visas darblapas tiks dzēstas darbgrāmatā.

Kods:

 Sub Delete_Example2 () Dim Ws kā darblapa katram W ActiveWorkbook. Darba lapas Ws. Dzēst nākamo Ws beigu apakšdaļu 

Iepriekš minētais kods radīs kļūdu, jo tas mēģina izdzēst visas darbgrāmatas lapas. Tāpēc, lai no tā izvairītos, mums jāsaglabā vismaz viena darblapa.

Ja mēs vēlamies izdzēst visas darblapas, izņemot aktīvo lapu, mums jāizmanto zemāk redzamais kods.

Kods:

 Sub Delete_Example2 () Dim Ws kā darblapa katram ActiveWorkbook WS. Darblapas, ja ActiveSheet.Name Ws.Name Tad Ws. Dzēst End, ja nākamās Ws End Sub 

Līdzīgi, ja mēs nevēlamies izdzēst konkrētu darblapu, bet izdzēst visas citas darblapas, tad mēs varam izmantot zem koda.

Kods:

 Sub Delete_Example2 () Dim Ws kā darblapa katram W ActiveWorkbook.Worksheets If Ws.Name "Sales 2018" Tad 'Jūs varat mainīt darblapas nosaukumu Ws. Dzēst End, ja Next Ws End Sub 

Iepriekš minētais kods izdzēsīs visas darblapas, izņemot darblapu ar nosaukumu “Pārdošana 2018”.


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