在同一个ROW VBA中找到两个重复项

时间:2016-02-02 09:50:57

标签: excel vba

不知何故,经过几天的googleing,我没有找到任何令人满意的答案。 我必须在同一列中找到重复项并将它们(或更多)复制到新工作表中以显示问题所在。

我设法做到的唯一方法是

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

但这花了太长时间!我发现字典可能非常有用但不知道如何使用它 - 它只显示SECOND值(我需要两者)

那么有没有其他解决方案可以找到重复项?我需要最快的一个,因为我正在处理的文件有100K +行(循环中的循环正在杀死我)

1 个答案:

答案 0 :(得分:0)

你可以尝试类似的东西来重新创建用空格代替重复值的列。然后,您可以只过滤列中的空白值,以查找哪些值或ID是重复的。或者编写一个循环遍历列的公式,并收集空单元格的地址。

=IF(A1="";"";IF(COUNTIF(A1:A100;A1)=1;A1;""))

将A1:A100替换为您的数据所占的范围,如果您愿意,则替换整列。