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
scrivere-codice-eliminare

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.

finestra di dialogo per confermare l'eliminazione o l'annullamento

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
disabilita l'avviso di dialogo

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.

utilizzare-un-valore-di-cella-per-utilizzare-il-nome-del-foglio-di-lavoro

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
usa-numero-foglio-per-eliminarlo

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
per eliminare-il-foglio-attivo-usa-il-foglio-attivo

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
scrivi-codice-per-controllare-se-il-foglio-esiste

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

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *