Hoe een blad verwijderen met vba?
Als u een blad met VBA wilt verwijderen, moet u de VBA-verwijderingsmethode gebruiken. U moet het blad opgeven dat u wilt verwijderen en vervolgens deze methode gebruiken. Laten we zeggen dat als u “Blad1” wilt verwijderen, u blad1 moet vermelden, vervolgens een punt (.) typt en aan het einde “Verwijderen” typt.
In deze zelfstudie zien we verschillende manieren waarop u een blad kunt verwijderen met behulp van VBA-code. Zorg ervoor dat het tabblad Ontwikkelaar op het lint staat. Vanaf hier heeft u toegang tot de visuele basiseditor .
Verwijder een blad met de naam ervan
Elk blad heeft een naam en u kunt schrijfcode gebruiken om een blad te verwijderen met behulp van de naam. Stel dat u het werkblad ‘Gegevens’ wilt verwijderen, dan zou de code er als volgt uitzien:
Sub vba_delete_sheet() Sheets("Data").Delete End Sub
Een blad verwijderen zonder waarschuwing (prompt)
Wanneer u een werkblad verwijdert, geeft Excel een bericht weer om te bevestigen of u het wilt verwijderen of annuleren. En als u VBA-code gebruikt, zal Excel dat in dit geval ook doen.
Om dit probleem op te lossen, kunt u het bijwerken van het scherm uitschakelen om een blad te verwijderen en dit vervolgens inschakelen.
Application.DisplayAlerts = False Sheets("Data").Delete Application.DisplayAlerts = True
Naam van het blad van een cel
Stel nu dat u een celwaarde wilt gebruiken om de werkbladnaam te gebruiken. In dit geval moet u hiervoor het VBA-bereikobject gebruiken.
Verwijder blad met bladnummer
Dat is juist. U kunt het bladnummer gebruiken om het te verwijderen. Hier is de code.
Sub vba_delete_sheet() Sheets(1).Delete End Sub
Actief blad verwijderen
Om het actieve blad te verwijderen, kunt u het object “ActiveSheet” gebruiken in plaats van de bladnaam te gebruiken om het blad op te geven.
ActiveSheet.Delete
Zoals ik al zei, hiermee wordt het actieve blad verwijderd en kunt u het activeren voordat u het verwijdert. Maar u hoeft dit uiteraard niet te doen, omdat u naar een blad kunt verwijzen en het kunt verwijderen, zoals we aan het begin van deze tutorial hebben gezien.
Controleer of het blad bestaat voordat u het verwijdert
U kunt ook zo code schrijven dat deze kan controleren of het blad bestaat of niet, en het vervolgens kan verwijderen.
Sub check_sheet_delete() Dim ws As Worksheet Dim mySheet As Variant mySheet = InputBox("enter sheet name") Application.DisplayAlerts = False For Each ws In ThisWorkbook.Worksheets If mySheet = ws.Name Then ws.Delete End If Next ws Application.DisplayAlerts = True End Sub
In deze code heb je FOR EACH om alle werkbladen te doorlopen. En dan een IF-VERKLARING om het blad te verwijderen als de naam gelijk is aan de naam die u in het invoervak hebt getypt.
Verwijder alle werkbladen uit de werkmap
Ik weet zeker dat u deze vraag in gedachten heeft, maar ik ben bang dat het onmogelijk is om alle werkbladen in de werkmap te verwijderen. Je hebt nog minstens één werkblad over.
Maar ik heb een oplossing voor dit probleem gevonden. U kunt een nieuw leeg vel invoegen en vervolgens alle aanwezige pagina’s verwijderen.
Hier is de code: Deze code voegt een nieuw blad toe en verwijdert alle andere bladen.
Sub vba_delete_all_worksheets() Dim ws As Worksheet Dim mySheet As String mySheet = "BlankSheet-" & Format(Now, "SS") Sheets.Add.Name = mySheet Application.DisplayAlerts = False For Each ws In ThisWorkbook.Worksheets If ws.Name <> mySheet Then ws.Delete End If Next ws Application.DisplayAlerts = True End Sub