The only problem I can see with your code without running it is that "For x = LastRow To 1" should read "For x = LastRow To 7."
Anyway, try this version.
Option Explicit Sub DeleteDups() Dim c As Long Dim MyRange As Range Set MyRange = Range("B7:B" & CStr(Cells(Rows.Count, 2).End(xlUp).Row)) For c = MyRange.Cells.Count To 1 Step -1 If Application.WorksheetFunction.CountIf(MyRange, _ MyRange.Cells(c).Value) > 1 Then _ MyRange.Cells(c).EntireRow.Delete Next c End Sub