比较两个不同工作表中的两列,然后突出显示差异

时间:2015-10-02 12:46:21

标签: excel vba

我在同一个工作簿中有两张纸。在每一个,我有一张桌子。我想编写一个比较2个表的宏,然后在第二个表中有更多行时突出显示行。我写了一些行,但我不知道如何继续循环。

 lr1 = Worksheets("Analyse de risque").Range("B" & Worksheets("Analyse de risque").Rows.Count).End(xlUp).Row
  lr2 = Worksheets("Plan Traitement Risque").Range("B" & Worksheets("Plan Traitement Risque").Rows.Count).End(xlUp).Row
  With ThisWorkbook.Sheets("Plan Traitement Risque")
    For i = 6 To lr1 Step 1
    foundTrue = False
        For j = 6 To lr2 Step 1
        If Sheets("Analyse de risque").Cells(i, 2).Value = Sheets("Plan Traitement Risque").Cells(j, 2).Value Then
        foundTrue = True
        Exit For
    End If

Next j

1 个答案:

答案 0 :(得分:2)

试试这个。它应该标记仅存在于其中一个工作表中的值 - 现在它使用删除线来标记这些线。但是,只需将宏所做的更改为单元格应该非常容易。开始录制并在某些文本上设置删除线,您应该立即获得它。

    Sub highlight_differences()

lr1 = Worksheets("Analyse de risque").Range("B" & Worksheets("Analyse de risque").Rows.Count).End(xlUp).Row
lr2 = Worksheets("Plan Traitement Risque").Range("B" & Worksheets("Plan Traitement Risque").Rows.Count).End(xlUp).Row

    Worksheets("Plan Traitement Risque").Range("B6:B" & lr2).Font.Strikethrough = True


    For i = 6 To lr1 Step 1
    foundTrue = False
        For j = 6 To lr2 Step 1

            If Sheets("Analyse de risque").Cells(i, 2).Value = Sheets("Plan Traitement Risque").Cells(j, 2).Value Then
                foundTrue = True
                Worksheets("Plan Traitement Risque").Range("B" & j).Font.Strikethrough = False

                Exit For
            End If

        Next j

        If foundTrue = False Then
            Worksheets("Analyse de risque").Range("B" & i).Font.Strikethrough = True

        End If

    Next i

End Sub