VBA Blad verwijderen

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?

U kunt dit VBA-blad Excel-sjabloon verwijderen hier downloaden - VBA Excel-sjabloon voor blad verwijderen

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

Stel dat u veel bladen heeft en om het specifieke werkblad te verwijderen, moeten we het werkblad bij de naam noemen. 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 werkbladnaam verkeerd vermelden, krijgen we de vba-fout als "Subscript buiten bereik".

In het bovenstaande kreeg ik de fout '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 het bovenstaande voorbeeld hebben gezien, krijgen we op het moment dat we 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 met behulp van het woord " SET ".

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: Nu we de variabele " Ws " gebruiken, hebben we 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 kunnen we met behulp van variabelen toegang krijgen 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, dwz "Verkoop 2017", verwijderd.

Nu selecteer ik “Verkoop 2016”.

Nu wordt het actieve blad verwijderd, dwz "Verkoop 2016".

Op deze manier kunnen we het "Active Sheet" -object gebruiken om het werkblad te verwijderen.

Opmerking: om deze methode te gebruiken, moeten we absoluut zeker weten wat we doen met het actieve blad en welk blad een actief blad zal worden.

Voorbeeld # 4 - Verwijder meer dan één werkblad

In onze bovenstaande voorbeelden hebben we gezien hoe we een enkel blad kunnen verwijderen, maar wat als we meerdere werkbladen hebben, laten we zeggen dat we 10 werkbladen willen verwijderen.

We kunnen niet 10 regels code blijven schrijven om het werkblad te verwijderen, dus we moeten lussen gebruiken om door de verzameling werkbladen te lopen en ze te verwijderen.

Onderstaande code loopt door de werkbladen en verwijdert alle werkbladen in de werkmap.

Code:

 Sub Delete_Example2 () Dim Ws als werkblad voor elke 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 willen verwijderen behalve het actieve blad, 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 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".