突出显示不同工作表上两个范围之间的重复项

我试图find一种更有效的方法来突出显示不同工作表上两个范围之间的重复单元格。 下面的代码是非常缓慢的:

Sub HighlightDuplicates() Application.DisplayAlerts = False lrU = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row lrPT = Sheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Row Dim rng1, rng2, cell1, cell2 As Range Set rng1 = Worksheets("Sheet1").Range("DL4:DL" & lrU) Set rng2 = Worksheets("Sheet2").Range("E3:M" & lrPT) For Each cell1 In rng1 For Each cell2 In rng2 If cell1.Value = cell2.Value Then cell1.Font.Bold = True cell1.Font.ColorIndex = 2 cell1.Interior.ColorIndex = 3 cell1.Interior.Pattern = xlSolid cell2.Font.Bold = True cell2.Font.ColorIndex = 2 cell2.Interior.ColorIndex = 3 cell2.Interior.Pattern = xlSolid End If Next cell2 Next cell1 Application.DisplayAlerts = True End Sub 

任何build议更有效的方法?

谢谢你的帮助。

问候,

把我的意见放在一起,你可以修改你的代码看起来像这样(未经testing)

 Sub HighlightDuplicates() Application.DisplayAlerts = False application.calculation=xlcalculationmanual application.screenupdating=false lrU = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row lrPT = Sheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Row Dim rng1, rng2, cell1, cell2 As Range Set rng1 = Worksheets("Sheet1").Range("DL4:DL" & lrU) Set rng2 = Worksheets("Sheet2").Range("E3:M" & lrPT) For Each cell2 In rng2 Set cell1 = rng1.Find(cell2, lookin:=xlValues) if not cell1 is nothing then firstAddress = cell1.address Do cell1.Font.Bold = True cell1.Font.ColorIndex = 2 cell1.Interior.ColorIndex = 3 cell1.Interior.Pattern = xlSolid cell2.Font.Bold = True cell2.Font.ColorIndex = 2 cell2.Interior.ColorIndex = 3 cell2.Interior.Pattern = xlSolid Set cell1 = rng1.FindNext(cell2) Loop While Not cell1 Is Nothing And cell1.Address <> firstAddress end if next cell1 application.displayalerts=true application.calculation=xlcalculationmanual application.screenupdating=true end sub