在两个电子表格中查找重复项

时间:2015-03-12 16:53:49

标签: excel excel-vba vba

我有两个电子表格,我想比较两个不同的列并突出显示所有重复项。我有代码通过一个工作表找到所有重复项,但我有两个单独的excel文件,我想比较。

Sub check_dups()

    Dim cel As Variant
    Dim myrange As Range

    Set myrange = Range("a1:ad400")
    myrange.Interior.ColorIndex = xlNone

    For Each cel In myrange
        If Application.WorksheetFunction.CountIf(myrange, cel) > 1 Then
            cel.Interior.ColorIndex = 4
        End If
    Next

End Sub

如何比较两个不同的文件,而不仅仅是比较一个数据? 另外,我如何比较两个特定列,例如C1:C400AD1:AD400而不是整个文件?

1 个答案:

答案 0 :(得分:0)

我假设您要比较AD1:AD400" File1.xlsx"到C1:c400 in" File2.xlsx":

Sub check_dups()

Dim cel, myrange, myrange2 As Range 'Changed to range. No need to use the extra memory for variant.

Set myrange = Workbooks("File1.xlsx").Sheets("Sheet1").Range("ad1:ad400") 'Edited since I forgot to change this to AD1
myrange.Interior.ColorIndex = xlNone
Set myrange2 = Workbooks("File2.xlsx").Sheets("Sheet1").Range("C1:C400")

For Each cel In myrange
    If Application.WorksheetFunction.Match(cel, myrange2) >= 1 Then
        cel.Interior.ColorIndex = 4
    End If
Next

End Sub

注意:对于较大的数据集,将第一个范围写入数组并循环可能会更快。对于给定的大小数据集,情况并非如此。