Macro that does some kind of duplicate check
Lowest-Hanging VBA Performance Fruit

You have 


With Application
.ScreenUpdating = False
.EnableEvents = False
.DisplayAlerts = False
End With



But you only have it in force for part of your Sub. If you move this


With Application
.ScreenUpdating = True
.EnableEvents = True
.DisplayAlerts = True
End With



To the very end of your Sub, you should instantly see a big improvement.

In addition, you should set Application.Calculate to xlCalculationManual at the start, and set it back to xlCalculationAutomatic at the end. That's the other big performance drain.



Always Reset anything you disable

Whenever you change an Application.Thing setting, that change will persist as long as Excel remains open. This:

Application.DisplayAlerts = False


is never set back to True. Once your Sub ends, if your user accidentally clicks the close button, Excel will close without prompting them to save their work first. Because alerts are disabled.