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/
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
Colega,
O melhor lugar para discutirmos isso é no nosso fórum:
http://www.tomasvasquez.com.br/forum
Nos vemos lá!
Abraços