这可能有点问题,但我想知道以下是否可行。这完全基于我对Copy Range and Paste Values in another Sheet's specific Range
的初步问题我有一张包含大约12列的工作表,其中复制了相同类型的数据,这意味着两行或更多行可以包含完全相同的数据,但是如果我可以检查重复数据,它将基于3个特定列
我不想为此任务使用自动筛选或条件格式,因为工作表可以包含数百到数千行,我希望能够找到重复项,删除它们并保留一个原始文件。我还在这里阅读了有关根据列条件删除重复项的其他帖子,但到目前为止没有一个对我有效。
数据范围是从A到P和向下,识别重复的3列是A(数字,ID),B(日期)和P(文本字符串) )。如果这些数据来自,它将始终具有相同的格式,并且将始终放在相同的列中,这就是为什么如果A,B,P相同,则认为它是重复的。
感谢您的帮助。
答案 0 :(得分:3)
此代码适用于我(lastrow
基于this asnwer @SiddharthRout):
Sub test()
Dim lastrow As Long
With ThisWorkbook.Worksheets("Sheet1")
If Application.WorksheetFunction.CountA(.Cells) <> 0 Then
lastrow = .Cells.Find(What:="*", _
After:=.Range("A1"), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Row
Else
lastrow = 1
End If
'Array(1, 2, 16) means 1 - for A, 2 for B and 16 for P columns
.Range("A1:P" & lastrow).RemoveDuplicates Columns:=Array(1, 2, 16), _
Header:=xlYes
End With
End Sub