如何使用宏 vba 从特定列中删除重复行

How to remove duplicate rows from specific column using macro vba

我对如何删除 excel 中特定列具有相同值的行有疑问。

我的问题请看下面的截图:

4: FullName: A SeqNo:003
在行 5: FullName: A SeqNo:003

所以行 45 具有相同的值所以我想删除其中一个但我不想删除行 automaticallyrandom 但状况良好只有 latest date will remain.



条件是这样的:



这应该是正确的输出:


那么如何通过宏vba实现呢?

提前致谢!

记录下您按日期列从新到旧排序的宏,然后在三列上使用删除重复项功能,但在删除重复项对话框中取消选中日期列。默认情况下 Excel 保留第一个重复项,因此通过排序您将删除具有较旧日期的行。

你应该可以自己整理记录的代码。

试试这个。

Sub test()
    Dim vDB, vR()
    Dim X As New Collection
    Dim Str As String
    Dim i As Long, j As Long, r As Long, c As Integer
    Dim n As Long

    vDB = Range("a1").CurrentRegion
    r = UBound(vDB, 1)
    c = UBound(vDB, 2)

    On Error Resume Next

    For i = 1 To r
        Str = vDB(i, 1) & vDB(i, 4)
        Err.Clear
        X.Add Str, Str
        If Err.Number = 0 Then
            n = n + 1
            ReDim Preserve vR(1 To c, 1 To n)
            For j = 1 To c
                vR(j, n) = vDB(i, j)
            Next j
        End If
    Next i
    For i = 1 To n
        For j = 1 To r
            If vDB(j, 1) = vR(1, i) And vDB(j, 4) = vR(4, i) Then
                If vDB(j, 5) >= vR(5, i) Then
                    vR(2, i) = vDB(j, 2)
                    vR(5, i) = vDB(j, 5)
                End If
            End If
        Next j
    Next i
    Sheets.Add
    Range("a1").Resize(n, c) = WorksheetFunction.Transpose(vR)

End Sub