VBA Slett ark - Hvordan sletter du regneark ved hjelp av VBA-kode?

Innholdsfortegnelse

Excel VBA Delete Sheet

For å slette ark i VBA har vi en Slett regnearkmetode. For å bruke denne metoden først må vi identifisere hvilket ark vi sletter ved å ringe arknavnet. Vi har to metoder for å gjøre det samme først skriver vi ark1.delete direkte og andre metode er ark (ark1) .delete.

Så syntaksen følger.

Regneark ("Navn på regneark"). Slett

ELLER

Ark ("Arknavn"). Slett

Så først må vi spesifisere arknavnet ved å bruke enten regneark eller arkobjekt , og senere kan vi bruke "Slett" -metoden.

Hvordan sletter du Excel-ark ved hjelp av VBA-kode?

Eksempel 1 - Slett regneark ved å bruke navnet

Anta at du har mange ark, og for å slette det aktuelle regnearket, må vi nevne regnearket med navnet. For eksempel har jeg 3 forskjellige ark med navnet “Salg 2016”, “Salg 2017” og “Salg 2018”.

Hvis jeg vil slette arket med navnet “ Salg 2017 ”, må jeg nevne arknavnet som nedenfor.

Kode:

Sub Delete_Example1 () Regneark ("ark 2017"). Slutt Sub

Problemet med å nevne regnearknavnet direkte får vi ikke se IntelliSense-listen over VBA. Uansett nevner du metoden som " Slett".

Kode:

Sub Delete_Example1 () regneark ("ark 2017"). Slett slutt sub

Så dette vil slette arket med navnet “ Salg 2017 ”.

Feil under sletting av regnearket: Hvis vi prøver å slette regnearket som ikke eksisterer, eller hvis vi nevner regnearknavnet feil, vil vi få VBA-feilen som "Abonnement utenfor rekkevidde."

Ovenfor fikk jeg feilen "Subscript Out of Range" fordi det i arbeidsboken min ikke er noe arknavn som heter "Salg 2017".

Eksempel 2 - Slett regneark etter navn med variabler

Som vi har sett i eksemplet ovenfor, får vi ikke øyeblikket vi refererer til regnearknavnet ved å bruke regnearkobjektet, IntelliSense-listen. For å få se IntelliSense-listen, må vi bruke variabler.

Trinn 1: Forklar først variabelen som regneark .

Kode:

Sub Delete_Example2 () Dim Ws Som regneark End Sub

Trinn 2: Siden regnearket er en objektvariabel, må vi sette variabelen til det spesifikke regnearket ved å bruke ordet " SET ".

Kode:

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

Nå refererer variabelen “Ws” til regnearket med navnet “Salg 2017”.

Trinn 3: Nå, ved å bruke variabelen " Ws ", kan vi få tilgang til hele IntelliSense-listen i regnearket.

Kode:

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

Trinn 4: Velg " Slett " -metoden fra IntelliSense-listen .

Kode:

Sub Delete_Example2 () Dim Ws As Worksheet Set Ws = Worksheets ("Sales 2017") Ws. Slett slutt sub

Som dette ved hjelp av variabler, kan vi få tilgang til IntelliSense-listen.

Eksempel # 3 - Slett aktivt regneark

Aktivt ark er ingenting annet enn hvilket regneark som er aktivt eller valgt for øyeblikket. For denne metoden trenger vi ikke å nevne regnearknavnet. Se for eksempel på VBA-koden nedenfor.

ActiveSheet. Slett

Akkurat nå er det aktive arket “Salg 2017”.

Hvis jeg kjører koden, vil den slette det aktive arket, dvs. “Salg 2017”.

Nå skal jeg velge “Salg 2016”.

Nå vil det slette det aktive arket, dvs. “Salg 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

Ovennevnte kode kaster en feil fordi den prøver å slette alle arkene i arbeidsboken. Så for å unngå dette, må vi beholde minst ett regneark.

Hvis vi vil slette alle regnearkene unntatt det aktive arket, må vi bruke koden nedenfor.

Kode:

Sub Delete_Example2 () Dim Ws som regneark for hvert Ws i ActiveWorkbook.Worksheets Hvis ActiveSheet.Name Ws.Name deretter Ws.Slett slutt hvis neste Ws End Sub

På samme måte, hvis vi ikke vil slette et bestemt regneark, men å slette alle andre regneark, kan vi bruke koden nedenfor.

Kode:

Sub Delete_Example2 () Dim Ws som regneark for hvert Ws i ActiveWorkbook.Worksheets Hvis Ws.Name "Salg 2018" Så "Du kan endre regnearknavnet Ws.Slette End If Next Ws End Sub

Ovennevnte kode vil slette alle regnearkene unntatt regnearket med navnet “Salg 2018”.

Interessante artikler...