VBA Excluir Linha ou Coluna Inteira – Automatize o ExcelAutomate Excel

Este tutorial irá demonstrar diferentes maneiras de excluir linhas e colunas no Excel usando VBA.

Excluir Linha ou Coluna Inteira

Para excluir uma linha inteira em VBA use esta linha de código:

Rows(1).Delete

Nota que usamos o método Excluir para excluir uma linha.

Em vez de referenciar o objeto Rows, você pode referenciar linhas baseadas no objeto Range com EntireRow:

Range("a1").EntireRow.Delete

Simplesmente para apagar uma coluna inteira, use estas linhas de código:

Columns(1).Delete
Range("a1").EntireColumn.Delete

Delete Multiple Rows or Columns

Usando a mesma lógica, você também pode excluir várias linhas de uma só vez:

Rows("1:3").Delete

ou colunas:

Columns("A:C").Delete

Notice aqui nós referenciamos as linhas e colunas específicas com números / letras rodeadas por citações.

Obviamente, você também pode referenciar a linha inteira de um intervalo:

Range("a1:a10").EntireRow.Delete

Nota: Os exemplos abaixo apenas demonstram a eliminação de linhas, no entanto, como você pode ver acima, a sintaxe é virtualmente idêntica para eliminar colunas.

Apagar Linhas em Branco / Vazias

Este exemplo irá apagar uma linha se a linha inteira estiver em branco:

Sub DeleteRows_EntireRowBlank()Dim cell As RangeFor Each cell In Range("b2:b20") If Application.WorksheetFunction.CountA(cell.EntireRow) = 0 Then cell.EntireRow.Delete End IfNext cellEnd Sub

Faz uso da função de planilha do Excel: COUNTA.

Delete Row if Cell is Blank

Isso excluirá uma linha se uma coluna específica naquela linha estiver em branco (neste caso coluna B):

Range("b3:b20").SpecialCells(xlCellTypeBlanks).EntireRow.Delete

Delete Row Based on Cell Value

Isso fará um loop através de um intervalo, e excluirá linhas se um determinado valor de célula naquela linha disser “delete”.

Sub DeleteRowswithSpecificValue()Dim cell As RangeFor Each cell In Range("b2:b20") If cell.Value = "delete" Then cell.EntireRow.Delete End IfNext cellEnd Sub

Exemplos de Apagar Linha e Coluna

Delete Duplicate Rows

Este código irá apagar todas as linhas duplicadas em um intervalo:

Range("b2:c100").RemoveDuplicates Columns:=2

Notificação que definimos Colunas:=2. Isto diz a 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 isto como 1, apenas a primeira linha teria sido verificada para valores duplicados.

Delete Table Rows

Este código irá apagar a segunda linha em uma Tabela referenciando ListObjects.

ThisWorkbook.Sheets("Sheet1").ListObjects("list1").ListRows(2).Delete

Delete Filtered Rows

Para apagar apenas linhas que são visíveis após a filtragem:

Range("b3:b20").SpecialCells(xlCellTypeVisible).EntireRow.Delete

Delete Rows in Range

Este código irá apagar todas as linhas no range:

Range("a1:a10").EntireRow.Delete

Apagar Linhas Seleccionadas

Este código irá apagar todas as linhas seleccionadas:

Selection.EntireRow.Delete

Apagar última linha

Este código irá apagar a última linha utilizada na coluna B:

Cells(Rows.Count, 2).End(xlUp).EntireRow.Delete

Alterando 2 para 1, pode apagar a última linha utilizada na coluna A, etc.:

Cells(Rows.Count, 1).End(xlUp).EntireRow.Delete

Delete Columns by Number

Para apagar uma coluna pelo seu número, use um código como este:

Columns (2).Delete

Deixe uma resposta

O seu endereço de email não será publicado.