Como deletar uma planilha usando vba?
Para excluir uma planilha usando VBA, você deve usar o método VBA Delete. Você precisa especificar a planilha que deseja excluir e usar este método. Digamos que se você deseja excluir a “Planilha1”, então você deve mencionar a planilha1, digitar um ponto final (.) e no final digitar “Excluir”.
Neste tutorial, veremos diferentes maneiras que você pode usar para excluir uma planilha usando código VBA. Certifique-se de ter a guia do desenvolvedor na faixa de opções, a partir daqui você pode acessar o editor de base visual .
Exclua uma planilha usando seu nome
Cada planilha tem um nome e você pode usar o código de gravação para excluir uma planilha usando o nome. Então, digamos que você queira deletar a planilha “Dados”, o código seria:
Sub vba_delete_sheet() Sheets("Data").Delete End Sub
Excluir uma planilha sem aviso (solicitação)
Ao excluir uma planilha, o Excel exibe uma mensagem para confirmar se deseja excluí-la ou cancelá-la. E quando você usa código VBA, neste caso o Excel também fará isso.
Para resolver esse problema, você pode desativar a atualização da tela para excluir uma planilha e ativá-la.
Application.DisplayAlerts = False Sheets("Data").Delete Application.DisplayAlerts = True
Nome da planilha de uma célula
Agora digamos que você queira usar um valor de célula para usar o nome da planilha. Nesse caso, você precisa usar o objeto de intervalo VBA para fazer isso.
Excluir planilha usando o número da planilha
Isso mesmo. Você pode usar o número da planilha para excluí-la. Aqui está o código.
Sub vba_delete_sheet() Sheets(1).Delete End Sub
Excluir planilha ativa
Para excluir a planilha ativa, você pode usar o objeto “ActiveSheet” em vez de usar o nome da planilha para especificá-la.
ActiveSheet.Delete
Como eu disse, isso exclui a planilha ativa e você pode ativá-la antes de excluí-la. Mas obviamente você não precisa fazer isso porque você pode consultar uma planilha e excluí-la como vimos no início deste tutorial.
Verifique se a planilha existe antes de excluí-la
Você também pode escrever o código de forma que possa verificar se a planilha existe ou não e então excluí-la.
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
Neste código você tem FOR EACH para iterar por todas as planilhas. E então, uma instrução IF para excluir a planilha se seu nome for igual ao nome que você digitou na caixa de entrada.
Exclua todas as planilhas da pasta de trabalho
Tenho certeza de que você tem essa pergunta em mente, mas infelizmente é impossível excluir todas as planilhas que você tem na pasta de trabalho. Você ainda tem pelo menos uma planilha.
Mas encontrei uma solução para esse problema. Você pode inserir uma nova folha em branco e excluir todas as que já estão lá.
Aqui está o código: Este código adiciona uma nova planilha e exclui todas as outras planilhas.
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