VBA Excluir Folha - Como excluir planilha usando código VBA?

Excel VBA Excluir planilha

Para excluir planilha no VBA, usamos o método Delete Worksheet. Para aplicar esse método, primeiro precisamos identificar qual planilha estamos excluindo chamando o nome da planilha. Temos dois métodos para fazer o mesmo, primeiro escrevemos planilha1.delete diretamente e o segundo método é planilha (planilha1) .delete.

Portanto, a sintaxe segue.

Planilhas ("Nome da planilha"). Excluir

OU

Folhas ("Nome da folha"). Excluir

Portanto, primeiro precisamos especificar o nome da folha usando Worksheet ou Sheets Object, e depois podemos usar o método “Delete” .

Como excluir planilhas do Excel usando código VBA?

Exemplo # 1 - Excluir planilha usando seu nome

Suponha que você tenha muitas planilhas e, para excluir uma planilha específica, precisamos mencioná-la pelo nome. Por exemplo, tenho 3 planilhas diferentes chamadas “Vendas 2016”, “Vendas 2017” e “Vendas 2018”.

Se eu quiser excluir a planilha chamada “ Vendas 2017 ”, devo mencionar o nome da planilha como o mostrado abaixo.

Código:

Sub Delete_Example1 () Planilhas ("planilhas 2017"). End Sub

O problema de mencionar o nome da planilha diretamente, não conseguimos ver a lista IntelliSense de VBA. De qualquer forma, mencione o método como “ Excluir”.

Código:

Sub Delete_Example1 () Planilhas ("planilhas 2017"). Excluir End Sub

Portanto, isso excluirá a planilha chamada “ Vendas 2017 “.

Erro ao excluir a planilha: se tentarmos excluir a planilha que não existe ou se mencionarmos o nome da planilha incorretamente, obteremos o erro VBA como “Subscrito fora do intervalo”.

Acima, recebi o erro “Subscrito fora do intervalo” porque, em minha pasta de trabalho, não há um nome de planilha chamado “Vendas 2017”.

Exemplo # 2 - Excluir planilha por seu nome com variáveis

Como vimos no exemplo acima, no momento em que nos referimos ao nome da planilha usando o objeto Worksheets, não conseguimos ver a lista do IntelliSense. Para ver a lista do IntelliSense, precisamos usar variáveis.

Etapa 1: primeiro, declare a variável como planilha .

Código:

Sub Delete_Example2 () Dim Ws As Planilha End Sub

Passo 2: Visto que a planilha é uma variável de objeto, precisamos definir a variável para a planilha específica usando a palavra “ SET ”.

Código:

Sub Delete_Example2 () Dim Ws As Worksheet Set Ws = Worksheets ("Vendas 2017") End Sub

Já a variável “Ws” se refere à planilha chamada “Vendas 2017”.

Etapa 3: Agora, usando a variável “ Ws ”, podemos acessar toda a lista IntelliSense da planilha.

Código:

Sub Delete_Example2 () Dim Ws As Worksheet Set Ws = Worksheets ("Vendas 2017") Ws. End Sub

Etapa 4: Na lista do IntelliSense, selecione o método “ Excluir ”.

Código:

Sub Delete_Example2 () Dim Ws As Worksheet Set Ws = Worksheets ("Vendas 2017") Ws.Delete End Sub

Assim, usando variáveis, podemos acessar a lista do IntelliSense.

Exemplo # 3 - Excluir planilha ativa

A Planilha Ativa nada mais é do que qualquer planilha ativa ou selecionada no momento. Para este método, não precisamos mencionar o nome da planilha. Por exemplo, observe o código VBA abaixo.

ActiveSheet.Delete

No momento, a planilha ativa é “Vendas 2017”.

Se eu executar o código, ele excluirá a planilha ativa, ou seja, “Vendas 2017”.

Agora selecionarei “Vendas 2016”.

Agora, ele excluirá a planilha ativa, ou seja, “Vendas 2016”.

Like this, we can use the “Active Sheet” object to delete the worksheet.

Note: To use this method, we need to absolutely sure of what we are doing with the Active Sheet and which sheet is going to be an active sheet.

Example #4 - Delete More than One Worksheet

In our above examples, we have seen how to delete a single sheet, but what if we have multiple worksheets? Let’s say we want to delete 10 worksheets.

We cannot keep writing 10 lines of code to delete the worksheet, so we need to use loops to loop through the collection of worksheets and delete them.

The below code will loop through the worksheets and delete all the worksheets in the workbook.

Code:

Sub Delete_Example2() Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets Ws.Delete Next Ws End Sub

O código acima gerará um erro porque tenta excluir todas as planilhas da pasta de trabalho. Portanto, para evitar isso, precisamos reter pelo menos uma planilha.

Se quisermos excluir todas as planilhas, exceto a planilha ativa, precisamos usar o código abaixo.

Código:

Sub Delete_Example2 () Dim Ws As Worksheet Para Cada Ws In ActiveWorkbook.Worksheets If ActiveSheet.Name Ws.Name Then Ws.Delete End If Next Ws End Sub

Da mesma forma, se não quisermos deletar uma planilha específica, mas deletar todas as outras planilhas, então podemos usar o código abaixo.

Código:

Sub Delete_Example2 () Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets If Ws.Name "Sales 2018" Then 'Você pode alterar o nome da planilha Ws.Delete End If Next Ws End Sub

O código acima excluirá todas as planilhas, exceto a planilha chamada “Vendas 2018”.

Artigos interessantes...