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

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *