检查是否有任何行重复并突出显示

时间:2012-07-26 08:40:06

标签: excel-vba vba excel

我在(Sheet4)列A到I中有数据:

我正在尝试比较所有行的数据(仅在A列和B列上)以查看是否有任何行重复,如果是:excel应突出显示两行。 例如:

A  B  C......I 

s  1  x

s  3  w

e  5  q

s  1  o

第1行和第4行应突出显示,因为A列和B列的值相同。

我不应该修改工作表(不应对工作表进行任何列或行的修改),并且行数并不总是已知(对于所有文件都不一样)。

有一种简单的方法(使用宏)来做这个吗???

这是我尝试过的尝试,但它将我的文件增加到7MB !!!!!我确信应该有一种更简单的方法来比较未知行数的行,只需突出显示重复项(如果它们存在):

Public Sub duplicate()
    Dim errorsCount As Integer
    Dim lastrow As Integer
    Dim lastrow10 As Integer
    errorsCount = 0

    lastrow = Sheet4.Cells(Rows.Count, "A").End(xlUp).Row 'is the row number of the last non-blank cell in the specified column
    lastrow10 = lastrow
    Sheet10.Range("B1:B" & lastrow10).Value = Sheet4.Range("A1:A" & lastrow).Value
    Set compareRange = Sheet10.Range(column + "2:" & Sheet10.Range(column + "2").End(xlDown).Address)
    For Each a In Sheet10.Range(column + "2:" & Sheet10.Range(column + "2").End(xlDown).Address)
        c = a.Value
        If c <> Null Or c <> "" Then
            If name = "testing" Then
                       If WorksheetFunction.CountIf(compareRange, c) > 1 Then
                        a.Interior.ColorIndex = 3
                        errorsCount = errorsCount + 1
                       End If
            End If
        End If
    Next a

    If errorsCount > 0 Then
        MsgBox "Found " + CStr(errorsCount) + " errors"
    Else
        MsgBox " No errors found."
    End If
End Sub

1 个答案:

答案 0 :(得分:2)

愚蠢回答你。

J1或只是复制表。

J1 = CONCATENATE(A1,“#”,B1)&gt;向下拖动&gt; J:J&gt;条件格式&gt; <高亮细胞规则>重复值。

(*将#替换为您认为在原始A:A和B:B中不可能的任何字符串。)

我一直这样做。

使用颜色收集所有重复项。