VBA Izbriši list - Kako izbrisati radni list pomoću VBA koda?

Excel VBA Izbriši list

Za brisanje lista u VBA koristimo metodu Delete Worksheet. Da bismo prvo primijenili ovu metodu, moramo identificirati koji list brišemo pozivanjem naziva lista. Imamo dvije metode da učinimo isto prvo izravno napišemo sheet1.delete, a druga metoda sheet (sheet1) .delete.

Dakle, slijedi sintaksa.

Radni listovi ("Naziv radnog lista"). Izbriši

ILI

Tablice ("Naziv lista"). Izbriši

Dakle, prvo, moramo navesti naziv lista pomoću predmeta Radni list ili Listovi , a zatim kasnije, možemo koristiti metodu "Izbriši" .

Kako izbrisati Excel tablice pomoću VBA koda?

Primjer # 1 - Izbrišite radni list koristeći njegovo ime

Pretpostavimo da imate mnogo listova, a da bismo izbrisali određeni radni list, radni list moramo spomenuti pod nazivom. Na primjer, imam 3 različita lista s nazivom „Prodaja 2016“, „Prodaja 2017“ i „Prodaja 2018“.

Ako želim izbrisati list s nazivom " Prodaja 2017 ", moram spomenuti naziv lista poput dolje navedenog.

Kodirati:

Podizbriši_Primjer1 () Radni listovi ("listovi 2017"). Kraj pod

Problem s izravnim spominjanjem naziva radnog lista ne vidimo na popisu IntelliSense VBA. U svakom slučaju spomenite metodu kao " Izbriši".

Kodirati:

Sub Delete_Example1 () Radni listovi ("listovi 2017"). Izbriši kraj Sub

Dakle, ovim ćete izbrisati list s nazivom „ Prodaja 2017 “.

Pogreška prilikom brisanja radnog lista : Ako pokušamo izbrisati radni list koji ne postoji ili ako pogrešno navedemo naziv radnog lista, dobit ćemo VBA pogrešku kao "Subscript Out of Range".

U gore navedenom dobio sam pogrešku "Subscript Out of Range", jer u mojoj radnoj knjizi ne postoji naziv lista nazvan "Prodaja 2017".

Primjer # 2 - Izbrišite radni list njegovim nazivom s varijablama

Kao što smo vidjeli u gornjem primjeru, u trenutku kada se pozivamo na naziv radnog lista pomoću objekta Worksheets, nećemo vidjeti popis IntelliSense. Da bismo vidjeli popis IntelliSense, moramo koristiti varijable.

Korak 1: Prvo proglasite varijablu radnim listom .

Kodirati:

Sub Delete_Example2 () Dim Ws as Worksheet End Sub

Korak 2: Budući da je radni list objektna varijabla, trebamo postaviti varijablu na određeni radni list pomoću riječi " SET ".

Kodirati:

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

Sada se varijabla "Ws" odnosi na radni list pod nazivom "Prodaja 2017".

Korak 3: Sada pomoću varijable " Ws " možemo pristupiti cijelom popisu IntelliSense na radnom listu.

Kodirati:

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

Korak 4: Na popisu IntelliSense odaberite metodu " Delete ".

Kodirati:

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

Ovako pomoću varijabli, možemo pristupiti popisu IntelliSense.

Primjer # 3 - Izbrišite aktivni radni list

Aktivni list nije ništa drugo nego onaj radni list koji je trenutno aktivan ili odabran. Za ovu metodu ne trebamo spominjati naziv radnog lista. Na primjer, pogledajte donji VBA kod.

ActiveSheet.Delete

Trenutno je aktivni list "Prodaja 2017".

Ako pokrenem kôd, on će izbrisati aktivni list, tj. "Prodaja 2017".

Sada ću odabrati „Prodaja 2016“.

Sada će izbrisati 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

Gornji kod izbacit će pogrešku jer pokušava izbrisati sve listove u radnoj knjizi. Da bismo to izbjegli, moramo zadržati barem jedan radni list.

Ako želimo izbrisati sve radne listove, osim aktivnog lista, trebamo upotrijebiti donji kod.

Kodirati:

Podizbriši_Primjer2 () Zatamni W kao radni list za svaki W u ActiveWorkbook.Worksheets If ActiveSheet.Name Ws.Name then Ws.Delete End If Next Ws End Sub

Slično tome, ako ne želimo izbrisati određeni radni list, već sve ostale radne listove, tada možemo koristiti donji kod.

Kodirati:

Podizbriši_Primjer2 () Zatamni W kao radni list za svaki W u ActiveWorkbook.Worksheets If Ws.Name "Sales 2018" then 'Možete promijeniti naziv radnog lista Ws.Delete End If Next Ws End Sub

Gornji kod izbrisat će sve radne listove, osim radnog lista pod nazivom "Prodaja 2018".

Zanimljivi članci...