excel:根据3列检查重复的行并保留一行

这可能有点多问,但我想知道如果以下是可能的。 这一切都是基于我在复制范围和粘贴值在另一个工作表的特定范围的初始问题

我有一张包含大约12列的表,其中相同types的数据被复制到这意味着两行或更多行可以包含完全相同的数据,但是如果我可以检查重复它将基于3个特定的列。

我不想为此任务使用自动筛选或条件格式,因为工作表可以包含数百到数千行,我希望能够find重复项,删除它们并只保留一个原始项。 我也读过关于根据列条件删除重复项目的其他post,但是迄今为止没有人为我工作。

数据的范围是从A到P和向下,并且将识别重复的3列是A(其是数字,ID),B(它是date)和P(它是文本string)。 这些数据来自哪里,总是有相同的格式,总是放在同一列,这就是为什么如果A,B,P是相同的,那么它被认为是重复的。

我在这里先向您的帮助表示感谢。

这段代码适用于我( lastrow based on this asnwer by @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