Vba: como excluir linhas com base no valor da célula
Você pode usar a seguinte sintaxe no VBA para excluir linhas com base em um valor de célula:
Sub DeleteRowsByValue()
Dim ws As Worksheet
Set ws = ActiveSheet
'clear existing filters
On Error Resume Next
ws.ShowAllData
On Error GoTo 0
'filter range where column 2 in range is equal to "East"
ws.Range(" A1:C10 ").AutoFilter Field:=2, Criteria1:=" East "
'delete rows that are visible
Application.DisplayAlerts = False
ws.Range(" A2:C10 ").SpecialCells(xlCellTypeVisible).Delete
Application.DisplayAlerts = True
'remove filter
On Error Resume Next
ws.ShowAllData
On Error GoTo 0
End Sub
Esta macro específica exclui todas as linhas no intervalo A1:C10 onde o valor da coluna B é igual a “Is”.
Esta macro usa as seguintes etapas:
- Aplique um filtro a A1:C10 para exibir apenas as linhas cujo valor na coluna B seja “É”.
- Em seguida, exclua todas as células visíveis.
- Em seguida, remova o filtro.
Isso tem o efeito de excluir todas as linhas no intervalo A1:C10 , onde o valor na coluna B é igual a “Is”.
O exemplo a seguir mostra como usar essa sintaxe na prática.
Exemplo: use VBA para excluir linhas com base no valor da célula
Suponha que temos o seguinte conjunto de dados contendo informações sobre vários jogadores de basquete:
Digamos que queremos remover todas as linhas do conjunto de dados onde a coluna Conferência é igual a “Leste”.
Podemos criar a seguinte macro para fazer isso:
Sub DeleteRowsByValue()
Dim ws As Worksheet
Set ws = ActiveSheet
'clear existing filters
On Error Resume Next
ws.ShowAllData
On Error GoTo 0
'filter range where column 2 in range is equal to "East"
ws.Range(" A1:C10 ").AutoFilter Field:=2, Criteria1:=" East "
'delete rows that are visible
Application.DisplayAlerts = False
ws.Range(" A2:C10 ").SpecialCells(xlCellTypeVisible).Delete
Application.DisplayAlerts = True
'remove filter
On Error Resume Next
ws.ShowAllData
On Error GoTo 0
End Sub
Quando executamos esta macro, recebemos a seguinte saída:
Observe que todas as linhas onde o valor na coluna Conferência era “Leste” foram excluídas.
Nota : A linha Application.DisplayAlerts=False diz ao VBA para não exibir o processo de remoção de linhas visíveis, o que acelera o processo.
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns em VBA:
VBA: Como aplicar formatação condicional às células
VBA: Como contar o número de linhas no intervalo
VBA: Como contar células com texto específico