Esta função eliminará todas as linhas duplicadas em um intervalo.
Para usá-la, selecione um intervalo de uma única coluna de células, compreendendo o intervalo de linhas a partir da qual são duplicados a ser excluído, por exemplo, C2:C99. Os valores da coluna selecionada serão comparados para determinar se uma linha tem duplicatas.
Linhas inteiras não são comparadas umas contra as outras. Apenas a coluna selecionada é utilizada para comparação.
Quando forem encontrados valores duplicados na coluna, a primeira linha continua, e todas as linhas subseqüentes são excluídas.
Public Sub DeleteDuplicateRows()
Dim R As Long
Dim N As Long
Dim V As Variant
Dim Rng As Range
On Error GoTo EndMacro
Let Application.ScreenUpdating = False
Let Application.Calculation = xlCalculationManualSet Rng = Application.Intersect(ActiveSheet.UsedRange, _ ActiveSheet.Columns(ActiveCell.Column))
Let Application.StatusBar = "Processando as linhas: " & Format(Rng.Row, "#,##0")Let N = 0For R = Rng.Rows.Count To 2 Step -1
If R Mod 500 = 0 Then
Let Application.StatusBar = "Processando as linhas: " & Format (R, "#,##0")End IfLet V = Rng.Cells(R, 1).ValueIf V = vbNullString Then
If Application.WorksheetFunction.CountIf(Rng.Columns(1), vbNullString) > 1 Then Rng.Rows(R).EntireRow.DeleteLetN = N + 1
End If
Else
If Application.WorksheetFunction.CountIf(Rng.Columns(1), V) > 1 Then Rng.Rows(R).EntireRow.DeleteLetN = N + 1
End If
End If
Next REndMacro:Let Application.StatusBar = FalseLet Application.ScreenUpdating = TrueLet Application.Calculation = xlCalculationAutomaticMsgBox "Linhas Duplicadas foram Deletadas: " & CStr(N)
End Sub
André Luiz Bernardes
A&A® - In Any Place.
Nenhum comentário:
Postar um comentário