我对如何删除Excel中特定列具有相同值的行有问题。
请为我的问题查看以下屏幕截图:
在第 4行: FullName: A
SeqNo:003
在第 5行: FullName: A
SeqNo:003
因此,行 4 和 5 具有相同的值,因此我想删除其中之一,但我不想删除行 {{1} } ,由 automatically
提出,但前提是只有 random
那么我怎样才能通过宏vba实现呢?
预先感谢!
答案 0 :(得分:1)
记录一个宏,该宏按最新到最旧的日期列排序,然后使用三列上的“删除重复项”功能,但在“删除重复项”对话框中取消选中日期列。默认情况下,Excel会保留它的第一个重复项,因此通过排序,您将删除具有较早日期的行。
您应该可以自己整理记录的代码。
答案 1 :(得分:1)
尝试一下。
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