VBA Excel - Delete as Linhas que não estiverem com a palavra indicada - Delete Rows Without Specific Word


Termo de Responsabilidade

Este código exclui todas as linhas onde a palavra especificada não aparecer. O código procurará casos em que toda a célula for igual à palavra(s) indicada. Como o código usa o método SpecialCells, é extremamente rápido - muito mais rápido do que ciclos através de um intervalo de células.

Sub DeleteRowsWithoutWord()
Dim Col As Variant, Word As String, LastRow As Long

Let Col = InputBox("Qual é a coluna na qual buscarei a palavra para deleção?")

If Len(Col) > 0 And Not Col Like "*[!0-9]*" Then Col = Val(Col)

Let Word = InputBox("Que palavra deve estar nas linhas que não apagarei?")
Let LastRow = Cells(Rows.Count, Col).End(xlUp).Row

On Error Resume Next

With Range(Cells(1, Col), Cells(LastRow, Col))
    .Replace Word, "#N/A", xlWhole
    .SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    .SpecialCells(xlCellTypeConstants, xlLogical + xlNumbers + xlTextValues).EntireRow.Delete
    Let .SpecialCells(xlCellTypeConstants, xlErrors).Value = Word
End With
End Sub

References:

Tags: VBA, Excel, excluir, delete, row, line, specialcells, range,  



Nenhum comentário:

Postar um comentário

diHITT - Notícias