VBA – Excluir Linha ou Coluna Inteira
In this Article
Este tutorial demonstrará diferentes maneiras de excluir linhas e colunas no Excel usando o VBA.
Excluir uma Linha ou Coluna Inteira
Para excluir uma linha inteira no VBA, use esta linha de código:
Rows(1).Delete
Observe que usamos o método Delete para excluir uma linha.
Em vez de fazer referência ao objeto Rows, você pode fazer referência a linhas com base em seu Objeto Range com EntireRow:
Range("a1").EntireRow.Delete
Da mesma forma, para excluir uma coluna inteira, use estas linhas de código:
Columns(1).Delete
Range("a1").EntireColumn.Delete
Excluir várias linhas ou colunas
Usando a mesma lógica, você também pode excluir várias linhas de uma vez:
Rows("1:3").Delete
ou colunas:
Columns("A:C").Delete
Observe que aqui fazemos referência aos números/letras específicos de linhas e colunas entre aspas.
Obviamente, você também pode fazer referência a EntireRow de um intervalo:
Range("a1:a10").EntireRow.Delete
Observação: os exemplos abaixo demonstram apenas a exclusão de linhas, mas, como você pode ver acima, a sintaxe é praticamente idêntica à da exclusão de colunas.
Excluir linhas em branco/vazias
Este exemplo excluirá uma linha se a linha inteira estiver em branco:
Sub ApagarLinhas_LinhaEmBranco()
Dim celula As Range
For Each celula In Range("b2:b20")
If Application.WorksheetFunction.CountA(celula.EntireRow) = 0 Then
celula.EntireRow.Delete
End If
Next celula
End Sub
Ele faz uso da função de planilha do Excel: CONT.VALORES (COUNTA).
Excluir linha se a célula estiver em branco
Isso excluirá uma linha se uma coluna específica dessa linha estiver em branco (nesse caso, a coluna B):
Range("b3:b20").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Excluir linha com Base no Valor da Célula
Esta opção percorrerá um intervalo e excluirá as linhas se um determinado valor de célula nessa linha indicar “excluir”.
Sub ApagarLihaComValorEspecial()
Dim celula As Range
For Each celula In Range("b2:b20")
If celula.Value = "excluir" Then
celula.EntireRow.Delete
End If
Next celula
End Sub
Mais Exemplos de Exclusão de Linhas e Colunas
Excluir Linhas Duplicadas
Este código excluirá todas as linhas duplicadas em um intervalo:
Range("b2:c100").RemoveDuplicates Columns:=2
Observe que definimos Columns:=2. Isso diz ao VBA para verificar as duas primeiras colunas de dados ao considerar se as linhas são duplicadas. Uma duplicata só é encontrada quando ambas as colunas têm valores duplicados.
Se tivéssemos definido esse valor como 1, somente a primeira linha seria verificada quanto a valores duplicados.
Excluir Linhas da Tabela
Esse código excluirá a segunda linha em uma tabela fazendo referência a ListObjects.
ThisWorkbook.Sheets("Planilha1").ListObjects("Tabela1").ListRows(2).Delete
Excluir Linhas filtradas
Para excluir somente as linhas que são visíveis após a filtragem:
Range("b3:b20").SpecialCells(xlCellTypeVisible).EntireRow.Delete
Excluir Linhas no Intervalo
Esse código excluirá todas as linhas do intervalo:
Range("a1:a10").EntireRow.Delete
Excluir Linhas Selecionadas
Este código excluirá todas as linhas selecionadas:
Selection.EntireRow.Delete
Excluir a Última Linha
Isso excluirá a última linha usada na coluna B:
Cells(Rows.Count, 2).End(xlUp).EntireRow.Delete
Ao alterar 2 para 1, você pode excluir a última linha usada na coluna A, etc:
Cells(Rows.Count, 1).End(xlUp).EntireRow.Delete
Excluir Colunas por Número
Para excluir uma coluna por seu número, use um código como este:
Columns (2).Delete