Como excluir uma linha inteira no Excel usando VBA (exemplos)

Adicionar e excluir linhas faz parte das tarefas comuns do dia a dia ao trabalhar com o Excel.

Embora você possa fazer isso facilmente a partir da própria planilha, às vezes você pode querer usar a rota VBA para excluir linhas no Excel. Isso pode ser a exclusão de uma linha específica, várias linhas na seleção, exclusão de linhas alternativas ou aquelas que possuem um valor específico.

Neste tutorial, vou mostrar como excluir linhas no Excel usando VBA (vários cenários).

Então vamos começar!

Excluir uma linha inteira usando VBA

Para excluir uma linha inteira no Excel usando o VBA, você precisa usar o método WholeRow.Delete.

Por exemplo, se você deseja excluir toda a primeira linha em uma planilha, você pode usar o código a seguir:

Sub DeleteEntireRow () Rows (1) .EntireRow.Delete End Sub

O código acima especifica primeiro a linha que precisa ser excluída (o que é feito especificando o número entre colchetes) e, em seguida, usa o método WholeRow.Delete para excluí-la.

Você também pode excluir várias linhas, especificando-as no código.

Por exemplo, o código abaixo excluirá as linhas 1, 5 e 9 da planilha:

Sub DeleteEntireRow () Rows (9) .EntireRow.Delete Rows (5) .EntireRow.Delete Rows (1) .EntireRow.Delete End Sub

O código acima usa a mesma lógica, onde especifica os números das linhas e o Excel apagará essas linhas uma a uma.

IMPORTANTE: quando você estiver excluindo linhas com algo semelhante ao código acima, lembre-se de começar a excluir na parte inferior e depois subir. Por exemplo, no caso de você começar no topo e excluir a linha 1 primeiro, todas as linhas abaixo dela seriam deslocadas uma linha para cima e a numeração seria desativada (já que a linha 5 se tornaria a linha 4 e assim por diante)

Excluir todas as linhas da seleção

Caso queira excluir todas as linhas em um intervalo de células selecionado, você pode usar o código de macro VBA abaixo:

Sub DeleteEntireRow () Selection.EntireRow.Delete End Sub

O código acima se aplica ao método WholeRow.Delete para toda a seleção.

Excluir linhas alternativas (ou excluir cada terceira / quarta / enésima linha)

Às vezes, você pode obter um despejo de dados onde cada segunda linha (ou terceira, quarta ou enésima linha) é inútil e precisa ser excluída.

Eu costumava trabalhar com dados financeiros em que cada segunda linha estava vazia e precisava ser excluída.

Este é o tipo de cenário em que o VBA realmente brilha.

Abaixo está o código VBA que percorrerá todas as linhas na seleção e excluirá a cada segunda linha:

Sub DeleteAlternateRows () RCount = Selection.Rows.Count For i = RCount Para 1 Etapa -2 Selection.Rows (i) .EntireRow.Delete Next i End Sub

Deixe-me explicar como esse código VBA funciona.

Primeiro, usei uma variável RCount para obter o número total de linhas na seleção.

Então, usei um loop For Next para executá-lo tantas vezes quantas linhas houver. Por exemplo, se houver 12 linhas, este loop será executado de 12 a 1 (ou seja, 12 vezes). É importante executar isso da última linha na seleção para a primeira, pois não queremos que os números das linhas mudem quando uma linha é excluída.

Além disso, a Etapa -2 é usada, pois precisamos excluir todas as outras linhas (de baixo para cima). Caso queira excluir a cada terceira linha, você pode usar -3.

Dentro do loop VBA, usei o método Selection.Rows (i) .EntireRow.Delete para excluir cada linha alternativa.

Excluir linhas em branco com VBA

Você também pode usar o método WholeRow.Delete para excluir todas as linhas em branco.

Abaixo está o código VBA que selecionará células em branco no conjunto de dados selecionado e excluirá a linha inteira.

Sub DeleteBlankRows () Selection.SpecialCells (xlCellTypeBlanks) .EntireRow.Delete End Sub

O código acima usa a propriedade SpecialCells para selecionar e excluir todas as células que estão em branco. Este é o mesmo método que também nos permite usar a caixa de diálogo ‘Ir para especial’ para selecionar todas as células em branco.

Uma vez que essas células em branco são identificadas usando SpecialCell, elas são então excluídas usando o método WholeRow.Delete.

Observação: este método seleciona células que estão em branco e não verifica se a linha inteira está em branco ou não. Portanto, se qualquer célula estiver vazia em uma linha, isso ainda excluirá toda a linha.

Excluir linhas com uma palavra / valor específico

Você também pode usar um código VBA simples para percorrer cada célula no intervalo selecionado e excluir todas as linhas em que uma célula contém um texto ou valor específico.

Por exemplo, suponha que você tenha um conjunto de dados e eu queira excluir todas as células que têm o texto Impressora na coluna 2 da seleção.

Abaixo está o código que fará isso:

Sub DeleteRowswithSpecificValue () For i = Selection.Rows.Count To 1 Step -1 If Cells (i, 2) .Value = "Printer" Then Cells (i, 2) .EntireRow.Delete End If Next i End Sub

O código acima conta primeiro o número total de linhas na seleção. Isso garantirá que o loop seja executado apenas essas vezes. Em seguida, ele usa o ‘For Next loop’ para percorrer todas as células na Coluna 2.

A instrução IF THEN ELSE é então usada para verificar o valor em cada célula na coluna 2. E caso o valor / texto corresponda ao texto especificado (que é ‘Impressora’ neste exemplo).

Neste exemplo, verifiquei se o texto corresponde a uma string específica ou não. Você também pode fazer isso com valores. Por exemplo, você pode excluir todas as linhas em que o valor de venda é inferior a 1000 ou superior a 1000.

Nota: Uma coisa importante a notar aqui é que o loop é executado a partir de Selection.Rows.Count para 1 para certificar-se de que quando uma linha é excluída, isso não afeta as linhas acima dela.

Como usar este código VBA

Agora, deixe-me mostrar como usar todos os códigos mencionados neste tutorial para excluir a linha inteira.

Você precisa copiar e colar esses códigos em um módulo no Excel VB Editor. Depois de copiar esses códigos, você pode executar os códigos de macro.

Abaixo estão as etapas para copiar e colar esses códigos VBA em um módulo:

  1. Segure a tecla ALT e pressione a tecla F11 (ou Função + Opção + F11 no Mac). Isso abrirá o Editor VB
  2. No Editor VB, você terá o explorador de projetos à esquerda. Caso não o veja, vá até a opção Exibir e clique em Explorador de Projetos.
  3. Clique com o botão direito em qualquer objeto no Project Explorer (para a pasta de trabalho na qual você deseja executar o código).
  4. Vá para Inserir e clique em Módulo. Isso irá inserir um novo módulo para a pasta de trabalho
  5. Copie e cole os códigos acima no módulo.

E para executar esses códigos, você pode colocar o cursor em qualquer lugar do código (que deseja executar) e pressionar a tecla F5 (ou clicar no triângulo verde na barra de ferramentas do VBA).

Também escrevi um tutorial detalhado sobre diferentes maneiras de executar códigos de macro VBA no Excel.

No caso de você precisar usar qualquer um desses códigos com frequência, você também pode considerar adicioná-los à pasta de trabalho macro pessoal e, em seguida, ao QAT. Dessa forma, o código estará disponível para você em qualquer uma de suas pastas de trabalho com um único clique.

Portanto, esses foram alguns códigos VBA que você pode usar para excluir linhas inteiras no Excel (em diferentes cenários). A mesma lógica também pode ser aplicada no caso de você desejar excluir colunas em vez de linhas (com o ajuste correspondente nos exemplos de código).

Espero que você tenha achado este tutorial útil!

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave