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

Satura rādītājs

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?

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 pēc nosaukuma. 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šnodaļa

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 End Sub

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

Dzēšot darblapu, radās kļūda: ja mēs mēģinām izdzēst darblapu, kuras nav, vai ja darblapas nosaukumu pieminējam nepareizi, VBA kļūda tiks parādīta kā “Apakšraksts ārpus diapazona”.

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ētajā piemērā, brīdī, kad mēs atsaucamies uz darblapas nosaukumu, izmantojot objektu Worksheets, mēs neredzam IntelliSense sarakstu. Lai apskatītu IntelliSense sarakstu, mums jāizmanto mainīgie.

1. solis: Vispirms paziņojiet 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 darblapas IntelliSense sarakstam.

Kods:

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

4. solis: sarakstā IntelliSense 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 es palaidīšu kodu, tas 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”.

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

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 W ActiveWorkbook. 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 gan visas citas darblapas, tad mēs varam izmantot zemāk redzamo kodu.

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

Interesanti raksti...