Excel 在五列中查找重复项
我有从A列到K列的数据集,希望从A列、D列、F列、J列和K列中找到重复的数据行 我有以下代码: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)
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]"