VBA Delete List - Kako izbrisati delovni list s kodo VBA?

Excel VBA Delete List

Za brisanje lista v VBA uporabimo metodo Delete Worksheet. Za uporabo te metode moramo najprej določiti, kateri list brišemo, tako da pokličemo ime lista. Za isto naredimo dve metodi, najprej neposredno napišemo sheet1.delete, druga metoda pa listi (sheet1) .delete.

Sintaksa torej sledi.

Delovni listi ("Ime delovnega lista"). Izbriši

ALI

Sheets ("Ime lista"). Izbriši

Torej, najprej moramo določiti ime lista z uporabo predmeta Worksheet ali Sheets , nato lahko kasneje uporabimo metodo “Delete” .

Kako izbrisati Excelove liste z uporabo kode VBA?

Primer # 1 - Izbrišite delovni list z uporabo njegovega imena

Recimo, da imate veliko listov, in če želimo izbrisati določen delovni list, moramo omeniti delovni list z imenom. Na primer, imam 3 različne liste z imenom »Prodaja 2016«, »Prodaja 2017« in »Prodaja 2018«.

Če želim izbrisati list z imenom » Prodaja 2017 «, moram omeniti ime lista, kot je prikazano spodaj.

Koda:

Sub Delete_Example1 () Delovni listi ("listi 2017"). Končaj pod

Težava z neposredno omembo imena delovnega lista ne vidimo na seznamu IntelliSense VBA. Vedno omenite metodo kot » Izbriši«.

Koda:

Sub Delete_Example1 () Delovni listi ("listi 2017"). Izbriši Konec Sub

Tako boste izbrisali list z imenom » Prodaja 2017 «.

Napaka pri brisanju delovnega lista: če poskusimo izbrisati delovni list, ki ne obstaja, ali če napačno omenimo ime delovnega lista, bomo dobili napako VBA kot »Subscript Out of Range«.

Zgoraj sem dobil napako »Subscript Out of Range«, ker v moji delovni knjigi ni imena lista z imenom »Prodaja 2017«.

2. primer - Izbrišite delovni list z imenom s spremenljivkami

Kot smo videli v zgornjem primeru, v trenutku, ko se z imenom Worksheets sklicujemo na ime delovnega lista, ne pridemo do seznama IntelliSense. Za ogled seznama IntelliSense moramo uporabiti spremenljivke.

1. korak: Najprej spremenljivko prijavite kot Worksheet .

Koda:

Sub Delete_Example2 () Dim Ws As Worksheet End Sub

2. korak: Ker je delovni list predmetna spremenljivka, moramo spremenljivko nastaviti na določen delovni list z uporabo besede » SET «.

Koda:

Sub Delete_Example2 () Dim Ws As Worksheet Set Ws = Worksheets ("Sales 2017") End Sub

Zdaj se spremenljivka "Ws" nanaša na delovni list z imenom "Prodaja 2017".

3. korak: Zdaj lahko s spremenljivko " Ws " dostopamo do celotnega seznama IntelliSense na delovnem listu.

Koda:

Sub Delete_Example2 () Dim Ws As Worksheet Set Ws = Worksheets ("Sales 2017") Ws. Končaj pod

4. korak: Na seznamu IntelliSense izberite način » Izbriši «.

Koda:

Sub Delete_Example2 () Dim Ws As Worksheet Set Ws = Worksheets ("Sales 2017") Ws.Delete End Sub

Tako kot pri spremenljivkah lahko dostopamo do seznama IntelliSense.

3. primer - Izbrišite aktivni delovni list

Aktivni list ni nič drugega kot tisti delovni list, ki je trenutno aktiven ali izbran. Pri tej metodi ni treba omeniti imena delovnega lista. Na primer, poglejte spodnjo kodo VBA.

ActiveSheet.Delete

Trenutno je aktivni list »Prodaja 2017«.

Če zaženem kodo, se izbriše aktivni list, tj. »Prodaja 2017«.

Zdaj bom izbral »Prodaja 2016«.

Zdaj bo izbrisal aktivni list, tj. »Prodaja 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

Zgornja koda bo povzročila napako, ker poskuša izbrisati vse liste v delovnem zvezku. Da bi se temu izognili, moramo obdržati vsaj en delovni list.

Če želimo izbrisati vse delovne liste, razen aktivnega lista, moramo uporabiti spodnjo kodo.

Koda:

Sub Delete_Example2 () Zatemni W kot delovni list za vsak Ws v ActiveWorkbook.Worksheets If ActiveSheet.Name Ws.Name Nato Ws.Delete End If Next Ws End Sub

Podobno, če ne želimo izbrisati določenega delovnega lista, temveč vse druge delovne liste, lahko uporabimo spodnjo kodo.

Koda:

Sub Delete_Example2 () Zatemni W kot delovni list za vsak Ws v ActiveWorkbook.Worksheets Če Ws.Name "Prodaja 2018" Potem 'Lahko spremenite ime delovnega lista Ws.Delete End If Next Ws End Sub

Zgornja koda bo izbrisala vse delovne liste, razen delovnega lista z imenom »Prodaja 2018«.

Zanimive Članki...