不知何故,在谷歌搜索了几天后,我没有找到任何令人满意的答案。我必须在同一列中找到重复项,并将它们两个(或更多)复制到新工作表中,以显示问题所在。
我成功做到这一点的唯一方法是
For i = 2 To lastCell
If dataArray(i, 3) <> "" Then
For j = i + 1 To lastCell
If dataArray(i, 3) = dataArray(j, 3) Then
results.Range("A" & k & ":" & lastCol & k).Value = checkbook.Range("A" & i & ":" & lastCol & i).Value '
results.Range(commentAddress & k).Value = "Duplicate ID"
k = k + 1
results.Range("A" & k & ":" & lastCol & k).Value = checkbook.Range("A" & j & ":" & lastCol & j).Value
results.Range(commentAddress & k).Value = "Duplicate ID"
k = k + 1
End If
Next j
End If
Next I
但是这花的时间太长了!我发现字典可能非常有用,但不知道如何使用它-它只显示第二个值(我需要两者)
那么,有没有其他的解决方案来发现重复的东西呢?我需要最快的,因为我正在处理的文件有100K+行(循环中的循环要了我的命)
发布于 2016-02-02 10:14:32
您可以尝试使用类似的方法重新创建列,用空格替换重复的值。然后,您可以只筛选列中的空值,以找出哪些值或ID是重复的。或者编写一个遍历列并收集空单元格地址的公式。
=IF(A1="";"";IF(COUNTIF(A1:A100;A1)=1;A1;""))
将A1:A100替换为您的数据所占的范围,或者如果您喜欢,则替换整列。
https://stackoverflow.com/questions/35149982
复制