Excel VBA – Remover linhas duplicadas

A macro abaixo exclui na coluna selecionada as linhas que tiverem valores repetidos. Praticamente igual a função de filtro para registros exclusivos, só que em VBA. Copie o código e cole em um novo módulo VBA. Preenche em qualquer planilha uma lista com alguns valores repetidos. Clique Alt+F8 para ativar a macro e veja o resultado.

Public Sub ExcluirLinhasDuplicadas()
 
    Dim Col As Integer
    Dim r As Long
    Dim C As Range
    Dim N As Long
    Dim V As Variant
    Dim Rng As Range
 
    On Error GoTo EndMacro
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
 
    Col = ActiveCell.Column
 
    If Selection.Rows.Count > 1 Then
        Set Rng = Selection
    Else
        Set Rng = ActiveSheet.UsedRange.Rows
    End If
 
    N = 0
    For r = Rng.Rows.Count To 1 Step -1
        V = Rng.Cells(r, 1).Value
        If Application.WorksheetFunction.CountIf(Rng.Columns(1), V) > 1 Then
            Rng.Rows(r).EntireRow.Delete
            N = N + 1
        End If
    Next r
 
EndMacro:
 
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
 
End Sub

Fonte: http://vbamacros.blogspot.com/

Comentários

comentários

2 comentários em “Excel VBA – Remover linhas duplicadas”

  1. Opa Tomas, muito boa a macro.

    Só uma pergunta, esta macro remove as ultimas linhas repetidas, pois pelo que entendi ela começa a varredura “de baixo para cima”.

    Teria como fazer ao contrario? ou seja, remover as primeiras linhas?

    Trabalho com uma planilha que sempre que atualizada o usuario deveria excluir as linhas correspondentes anteriores, mas isto nem sempre acontece e preciso fazer isto manualmente.

    Grato

Os comentários estão fechados.