Excel 在五列中查找重复项

Excel 在五列中查找重复项,excel,excel-2003,vba,Excel,Excel 2003,Vba,我有从A列到K列的数据集,希望从A列、D列、F列、J列和K列中找到重复的数据行 我有以下代码: Sub RemoveDupes2() Dim r As Long, lr As Long Application.ScreenUpdating = False lr = Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row With Range("L2:L" & lr)

我有从A列到K列的数据集,希望从A列、D列、F列、J列和K列中找到重复的数据行

我有以下代码:

Sub RemoveDupes2()

Dim r As Long, lr As Long
 Application.ScreenUpdating = False
  lr = Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row
   With Range("L2:L" & lr)
     .Formula = "=ROW()"
      .Value = .Value
   End With
  Range("A2:L" & lr).Sort Key1:=Range("A2"), Order1:=1, Key2:=Range("B2"), Order2:=1
  With Range("M2:M" & lr)
   .FormulaR1C1 = "=RC[-12]&RC[-11]&RC[-6]&RC[-4]&RC[-2]"
   .Value = .Value
    End With
  With Range("N2:N" & lr)
   .FormulaR1C1 = "=COUNTIF(R1C13:RC[-1],RC[-1])"
      .Value = .Value
  End With
    For r = lr To 2 Step -1
     If Cells(r, 14).Value > 2 Then
        Rows(r).Delete
     ElseIf Cells(r, 14).Value = 2 Then
      Cells(r - 1, 1).Resize(, 7).Font.Bold = True
      Rows(r).Delete
     End If
    Next r
    lr = Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row
      Range("A2:L" & lr).Sort Key1:=Range("L2"), Order1:=1
     Range("L2:N" & lr).ClearContents
      Application.ScreenUpdating = True
      End Sub
该代码目前删除了整个数据集,我不知道为什么会这样做,因为我是VBA的新手


在第一次使用时,请尝试更改:

.FormulaR1C1 = "=RC[-12]&RC[-11]&RC[-6]&RC[-4]&RC[-2]"  


但是,可能会有一个单独的问题,因为即使未更改上述代码,也不会删除整个数据集(对于我来说,使用Excel 2007)。

您正在运行的Excel版本是什么?亲爱的@ScottHoltzman,我使用的是Excel 2003版。另外,您是否可以发布指向数据(或虚拟数据)样本表的链接,或者告诉我J列有什么类型的值,因为这句话
如果单元格(r,10)。Value>2,那么
可能会导致所有内容被删除,如果J列中的内容大于2或者是文本值或其他内容。亲爱的@ScottHoltzman,我已经更新了代码,但现在是按字母顺序重新排列数据,理想情况下,我想突出显示A、D、F、J和K列。另外,我如何发布链接以显示我的数据集样本。非常感谢您的回复和帮助。我查看了您的示例,但代码似乎完全符合您的要求。文件中没有“before”和“after”,因此除非您提供更清晰的说明,否则很难提供帮助。
.FormulaR1C1 = "=RC[-12]&RC[-9]&RC[-7]&RC[-3]&RC[-2]"