Como excluir linhas em branco no vba (com exemplos)
Você pode usar os seguintes métodos em VBA para remover linhas em branco:
Método 1: remover linhas em branco em um intervalo específico
Sub DeleteEmptyRowsInRange()
Sheets(" Sheet1 ").Select
Range(" A1:B10 ").Select
Selection.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
Esta macro específica removerá todas as linhas em branco do intervalo A1:B10 de Sheet1 .
Método 2: excluir linhas em branco da planilha inteira
Sub DeleteEmptyRowsInSheet()
'turn off screen updating for faster performance
Application.ScreenUpdating = False
Dim i As Long
With ActiveSheet
For i = .Cells.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1
If WorksheetFunction.CountA(.Rows(i)) = 0 Then
ActiveSheet.Rows(i).Delete
End If
Next
End With
'turn screen updating back on
Application.ScreenUpdating = True
End Sub
Esta macro específica excluirá todas as linhas em branco de toda a planilha ativa.
Os exemplos a seguir mostram como usar cada método na prática.
Exemplo 1: Remover linhas em branco em um intervalo específico
Digamos que temos o seguinte conjunto de dados no Excel que contém informações sobre vários jogadores de basquete:
Podemos criar a seguinte macro para remover todas as linhas em branco do intervalo A1:B10 nesta planilha:
Sub DeleteEmptyRowsInRange()
Sheets(" Sheet1 ").Select
Range(" A1:B10 ").Select
Selection.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
Depois de executar esta macro, receberemos a seguinte saída:
Observe que todas as linhas em branco foram removidas do intervalo que especificamos.
Exemplo 2: Excluir linhas em branco em uma planilha inteira
Digamos que temos o seguinte conjunto de dados no Excel que contém informações sobre vários jogadores de basquete:
Podemos criar a seguinte macro para remover todas as linhas em branco de toda a planilha:
Sub DeleteEmptyRowsInSheet()
'turn off screen updating for faster performance
Application.ScreenUpdating = False
Dim i As Long
With ActiveSheet
For i = .Cells.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1
If WorksheetFunction.CountA(.Rows(i)) = 0 Then
ActiveSheet.Rows(i).Delete
End If
Next
End With
'turn screen updating back on
Application.ScreenUpdating = True
End Sub
Depois de executar esta macro, receberemos a seguinte saída:
Observe que todas as linhas em branco foram removidas de toda a planilha.
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns em VBA:
VBA: Como excluir linhas com base no valor da célula
VBA: Como deletar uma planilha se o nome contiver texto específico
VBA: como excluir arquivos