VBA Slet ark - Sådan slettes regneark ved hjælp af VBA-kode?

Indholdsfortegnelse

Excel VBA Slet ark

For at slette ark i VBA har vi en Slet regnearkmetode. For at anvende denne metode skal vi først identificere, hvilket ark vi sletter ved at kalde arknavnet. Vi har to metoder til at gøre det samme først skriver vi ark1.delete direkte og anden metode er ark (ark1) .delete.

Så syntaksen følger.

Arbejdsark ("Navn på regneark"). Slet

ELLER

Ark ("Arknavn"). Slet

Så først skal vi specificere arknavnet ved hjælp af enten regneark eller arkobjekt , så senere kan vi bruge "Slet" -metoden.

Sådan slettes Excel-ark ved hjælp af VBA-kode?

Eksempel # 1 - Slet regneark ved hjælp af dets navn

Antag, at du har mange ark, og for at slette det bestemte regneark skal vi nævne regnearket med dets navn. For eksempel har jeg 3 forskellige ark med navnet “Salg 2016”, “Salg 2017” og “Salg 2018”.

Hvis jeg vil slette arket med navnet “ Salg 2017 ”, så er jeg nødt til at nævne arknavnet som nedenfor.

Kode:

Under Delete_Example1 () regneark ("ark 2017"). Afslut sub

Problemet med at nævne regnearknavnet direkte får vi ikke vist IntelliSense-listen over VBA. Under alle omstændigheder nævner metoden som " Slet".

Kode:

Sub Delete_Example1 () Arbejdsark ("ark 2017"). Slet End Sub

Så dette sletter arket med navnet “ Salg 2017 ”.

Fejl under sletning af regnearket: Hvis vi forsøger at slette det regneark, der ikke findes, eller hvis vi nævner regnearkets navn forkert, får vi VBA-fejlen som "Subscript Out of Range."

I ovenstående fik jeg fejlen "Subscript Out of Range", fordi der i min projektmappe ikke er noget arknavn, der hedder "Salg 2017".

Eksempel 2 - Slet regneark efter dets navn med variabler

Som vi har set i eksemplet ovenfor, får vi ikke det øjeblik, vi henviser til regnearknavnet ved hjælp af regnearkobjektet, at se IntelliSense-listen. For at få vist IntelliSense-listen skal vi bruge variabler.

Trin 1: Erklær først variablen som regneark .

Kode:

Sub Delete_Example2 () Dim Ws Som regneark End Sub

Trin 2: Da regnearket er en objektvariabel, skal vi indstille variablen til det specifikke regneark ved hjælp af ordet " SET ".

Kode:

Sub Delete_Example2 () Dim Ws Som regneark Sæt Ws = Worksheets ("Salg 2017") Afslut Sub

Nu henviser variablen “Ws” til regnearket med navnet “Salg 2017”.

Trin 3: Nu, ved hjælp af variablen " Ws ", kan vi få adgang til hele IntelliSense-listen i regnearket.

Kode:

Sub Delete_Example2 () Dim Ws Som regneark Sæt Ws = Worksheets ("Salg 2017") Ws. Afslut sub

Trin 4: Vælg " Slet " -metoden på IntelliSense-listen .

Kode:

Sub Delete_Example2 () Dim Ws Som Worksheet Set Ws = Worksheets ("Salg 2017") Ws.Slet End Sub

Som dette ved hjælp af variabler kan vi få adgang til IntelliSense-listen.

Eksempel # 3 - Slet aktivt regneark

Aktivt ark er intet andet end hvilket regneark, der er aktivt eller valgt i øjeblikket. Til denne metode behøver vi ikke nævne regnearkets navn. Se for eksempel på nedenstående VBA-kode.

ActiveSheet.Slet

Lige nu er det aktive ark “Salg 2017”.

Hvis jeg kører koden, slettes det aktive ark, dvs. "Salg 2017".

Nu vælger jeg “Salg 2016”.

Nu sletter det det aktive ark, 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

Ovenstående kode kaster en fejl, fordi den forsøger at slette alle arkene i projektmappen. Så for at undgå dette skal vi beholde mindst et regneark.

Hvis vi vil slette alle regnearkene undtagen det aktive ark, skal vi bruge nedenstående kode.

Kode:

Sub Delete_Example2 () Dim Ws som regneark for hver Ws i ActiveWorkbook.Worksheets Hvis ActiveSheet.Name Ws.Name Derefter Ws.Slet Slut hvis næste Ws End Sub

Tilsvarende, hvis vi ikke ønsker at slette et bestemt regneark, men at slette alle andre regneark, så kan vi bruge nedenstående kode.

Kode:

Sub Delete_Example2 () Dim Ws som regneark for hver Ws i ActiveWorkbook.Worksheets Hvis Ws.Name "Salg 2018" Så 'Du kan ændre regnearknavnet Ws.Slet End hvis næste Ws End Sub

Ovenstående kode sletter alle regnearkene undtagen regnearket med navnet “Salg 2018”.

Interessante artikler...