Come eliminare un foglio utilizzando vba?
Per eliminare un foglio utilizzando VBA, è necessario utilizzare il metodo Elimina VBA. È necessario specificare il foglio che si desidera eliminare e quindi utilizzare questo metodo. Diciamo che se vuoi eliminare il “Foglio1”, devi menzionare il foglio1, quindi digitare un punto (.) e alla fine digitare “Elimina”.
In questo tutorial vedremo diversi modi che puoi utilizzare per eliminare un foglio utilizzando il codice VBA. Assicurati di avere la scheda sviluppatore sulla barra multifunzione da qui puoi accedere all’editor di base visiva .
Elimina un foglio utilizzando il suo nome
Ogni foglio ha un nome ed è possibile utilizzare il codice di scrittura per eliminare un foglio utilizzando il nome. Quindi, supponiamo che tu voglia eliminare il foglio di lavoro “Dati”, il codice sarebbe:
Sub vba_delete_sheet() Sheets("Data").Delete End Sub
Elimina un foglio senza avviso (richiesta)
Quando elimini un foglio di lavoro, Excel visualizza un messaggio per confermare se desideri eliminarlo o annullarlo. E quando usi il codice VBA, in questo caso lo farà anche Excel.
Per risolvere questo problema, puoi disabilitare l’aggiornamento dello schermo per eliminare un foglio e quindi abilitarlo.
Application.DisplayAlerts = False Sheets("Data").Delete Application.DisplayAlerts = True
Nome del foglio di una cella
Ora supponiamo che tu voglia utilizzare un valore di cella per utilizzare il nome del foglio di lavoro. In questo caso, è necessario utilizzare l’ oggetto intervallo VBA per farlo.
Elimina il foglio utilizzando il numero del foglio
Giusto. È possibile utilizzare il numero del foglio per eliminarlo. Ecco il codice.
Sub vba_delete_sheet() Sheets(1).Delete End Sub
Elimina il foglio attivo
Per eliminare il foglio attivo, è possibile utilizzare l’oggetto “ActiveSheet” invece di utilizzare il nome del foglio per specificare il foglio.
ActiveSheet.Delete
Come ho detto, questo elimina il foglio attivo e puoi attivarlo prima di eliminarlo. Ma ovviamente non è necessario farlo perché puoi fare riferimento a un foglio ed eliminarlo come abbiamo visto all’inizio di questo tutorial.
Controlla se il foglio esiste prima di eliminarlo
Puoi anche scrivere il codice in modo tale da poter verificare se il foglio esiste o meno e quindi eliminarlo.
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 questo codice devi FOR EACH scorrere tutti i fogli di lavoro. E poi, un’istruzione IF per eliminare il foglio se il suo nome è uguale al nome digitato nella casella di input.
Elimina tutti i fogli di lavoro dalla cartella di lavoro
Sono sicuro che hai in mente questa domanda, ma temo che sia impossibile eliminare tutti i fogli di lavoro che hai nella cartella di lavoro. Ti è rimasto almeno un foglio di lavoro.
Ma ho trovato una soluzione a questo problema. Puoi inserire un nuovo foglio bianco, quindi eliminare tutti quelli già presenti.
Ecco il codice: Questo codice aggiunge un nuovo foglio ed elimina tutti gli altri fogli.
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