我在同一个工作簿中有两张纸。在每一个,我有一张桌子。我想编写一个比较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
答案 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