VBA Blad verwijderen - Hoe werkblad verwijderen met VBA-code?

Excel VBA Blad verwijderen

Om blad in VBA te verwijderen, hebben we een methode Werkblad verwijderen. Om deze methode toe te passen, moeten we eerst bepalen welk blad we verwijderen door de bladnaam aan te roepen. We hebben twee methoden om hetzelfde te doen, eerst schrijven we direct sheet1.delete en de tweede methode is sheets (sheet1) .delete.

Dus de syntaxis volgt.

Werkbladen ("Werkbladnaam"). Verwijderen

OF

Bladen ("Bladnaam"). Verwijderen

We moeten dus eerst de bladnaam specificeren met behulp van Worksheet of Sheets Object, en later kunnen we de "Delete" -methode gebruiken.

Hoe Excel-bladen te verwijderen met VBA-code?

Voorbeeld # 1 - Werkblad verwijderen door de naam ervan te gebruiken

Stel dat u veel bladen heeft en om het betreffende werkblad te verwijderen, moeten we het werkblad bij de naam vermelden. Ik heb bijvoorbeeld drie verschillende bladen met de namen "Verkoop 2016", "Verkoop 2017" en "Verkoop 2018".

Als ik het blad met de naam " Verkoop 2017 " wil verwijderen , moet ik de bladnaam vermelden zoals hieronder.

Code:

Sub Delete_Example1 () Worksheets ("sheets 2017"). Einde Sub

Het probleem met het rechtstreeks vermelden van de werkbladnaam krijgen we niet te zien in de IntelliSense-lijst van VBA. Noem de methode in ieder geval als ' Verwijderen'.

Code:

Sub Delete_Example1 () Worksheets ("sheets 2017"). Verwijder End Sub

Hierdoor wordt het blad met de naam " Verkoop 2017 " verwijderd.

Fout bij het verwijderen van het werkblad: als we proberen het werkblad te verwijderen dat niet bestaat of als we de naam van het werkblad verkeerd vermelden, krijgen we de VBA-foutmelding als 'Subscript buiten bereik'.

In het bovenstaande kreeg ik de foutmelding "Subscript buiten bereik" omdat er in mijn werkmap geen bladnaam staat met de naam "Verkoop 2017".

Voorbeeld # 2 - Werkblad verwijderen op naam met variabelen

Zoals we in het bovenstaande voorbeeld hebben gezien, krijgen we op het moment dat we naar de werkbladnaam verwijzen met behulp van het Worksheets-object de IntelliSense-lijst niet te zien. Om de IntelliSense-lijst te zien, moeten we variabelen gebruiken.

Stap 1: Declareer eerst de variabele als werkblad .

Code:

Sub Delete_Example2 () Dim Ws As Worksheet End Sub

Stap 2: Omdat het werkblad een objectvariabele is, moeten we de variabele instellen op het specifieke werkblad door het woord " SET " te gebruiken.

Code:

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

Nu verwijst de variabele "Ws" naar het werkblad met de naam "Verkoop 2017".

Stap 3: Met de variabele " Ws " hebben we nu toegang tot de hele IntelliSense-lijst van het werkblad.

Code:

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

Stap 4: Selecteer in de IntelliSense-lijst de " Delete " -methode.

Code:

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

Op deze manier hebben we met behulp van variabelen toegang tot de IntelliSense-lijst.

Voorbeeld # 3 - Verwijder actief werkblad

Actief blad is niets anders dan het werkblad dat op dit moment actief of geselecteerd is. Voor deze methode hoeven we de werkbladnaam niet te vermelden. Kijk bijvoorbeeld naar de onderstaande VBA-code.

ActiveSheet.Delete

Op dit moment is het actieve blad "Verkoop 2017".

Als ik de code uitvoer, wordt het actieve blad verwijderd, dwz "Verkoop 2017".

Nu selecteer ik “Verkoop 2016”.

Nu wordt het actieve blad verwijderd, dwz "Verkoop 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

De bovenstaande code genereert een fout omdat wordt geprobeerd alle bladen in de werkmap te verwijderen. Om dit te voorkomen, moeten we dus ten minste één werkblad behouden.

Als we alle werkbladen behalve het actieve blad willen verwijderen, moeten we de onderstaande code gebruiken.

Code:

Sub Delete_Example2 () Dim Ws als werkblad voor elke Ws in ActiveWorkbook.Worksheets If ActiveSheet.Name Ws.Name Then Ws.Delete End If Next Ws End Sub

Evenzo, als we een specifiek werkblad niet willen verwijderen maar alle andere werkbladen willen verwijderen, kunnen we de onderstaande code gebruiken.

Code:

Sub Delete_Example2 () Dim Ws As Worksheet For Every Ws In ActiveWorkbook.Worksheets If Ws.Name "Sales 2018" Dan 'U kunt de werkbladnaam Ws.Delete End If Next Ws End Sub wijzigen

De bovenstaande code verwijdert alle werkbladen behalve het werkblad met de naam "Verkoop 2018".

Interessante artikelen...