Excel 高亮显示完整的重复行(不是单个值)
我已经研究了其他几个堆栈溢出问题,但是我还没有找到我想要的答案 我有一张excel表格,有25000行,格式如下:Excel 高亮显示完整的重复行(不是单个值),excel,vba,Excel,Vba,我已经研究了其他几个堆栈溢出问题,但是我还没有找到我想要的答案 我有一张excel表格,有25000行,格式如下: userid | taskid | taskcode 1 | 3 | K 1 | 4 | O 1 | 4 | L 1 | 5 | O 2 | 3 | O 考虑到userid和taskid,我想做的是识别任
userid | taskid | taskcode
1 | 3 | K
1 | 4 | O
1 | 4 | L
1 | 5 | O
2 | 3 | O
考虑到userid
和taskid
,我想做的是识别任何重复的行,在上面的示例中,我希望第二行和第三行高亮显示
我不确定这是否可行,理想情况下,我希望识别包含taskcode
O
的重复行,而不是L
我的最终目标是用taskcode O删除所有重复的userid/taskid行,不管它是如何实现的(高亮显示,然后通过高亮显示或使用vba进行排序)。搞乱后确定解决了它-除非找到更有效的方法,否则我将把这个答案留在这里供将来参考 步骤1 使用D列中的
=A2&B2
创建一个包含userid
和taskid
值的组合单元格
步骤2
使用内置条件格式突出显示重复项
步骤3
使用顶部突出显示的重复红色突出显示单元格进行自定义排序,然后按所选自定义顺序(O、K、L)对任务代码进行排序
步骤4
只需突出显示要删除的所有行(现在是块中的行)。如果您想尝试使用VBA
Sub duplicates_separation()
Dim duplicate(), i As Long
Dim delrange As Range, cell As Long
Dim delrange2 As Range
Dim shtIn As Worksheet
Dim numofrows1
Set shtIn = ThisWorkbook.Sheets("sheet1")
x = 2
y = 1
Set delrange = shtIn.Range("c1:b30000") 'set your range here
Set delrange2 = shtIn.Range("b1:f30000")
ReDim duplicate(0)
'search duplicates in 2nd column
For cell = 1 To delrange.Cells.Count
If Application.CountIf(delrange, delrange(cell)) > 1 Then
ReDim Preserve duplicate(i)
duplicate(i) = delrange(cell).Address
i = i + 1
End If
Next
'search duplicates in 3rd column
For cell = 1 To delrange2.Cells.Count
If Application.CountIf(delrange2, delrange2(cell)) > 1 Then
ReDim Preserve duplicate(i)
duplicate(i) = delrange2(cell).Address
i = i + 1
End If
Next
'print duplicates
For i = UBound(duplicate) To LBound(duplicate) Step -1
shtIn.Range(duplicate(i)).EntireRow.Value.delete
x = x + 1
Next i
End Sub
+1我也会使用串联方法,但漂亮而简单的代码对我来说并不适用。它冻结了一分钟,最后给出了“需要对象”警告框,没有突出显示任何重复。