Don't know how much data (number of rows) you have in the file as I assume the upload is a small sample. If so I think I would start getting rid of duplicates and rows that contains "60-", "2200" and so fort in order to reduce the number of rows to check for blank values in column M and V.
So adding a few bits and pieces to jindons's code you could try this:
Sub test()
Dim a, rng As Range
Dim mRng As Range
Dim vRng As Range
Application.ScreenUpdating = False
a = Array("*22000*", "*22005*", "*22025*", "60-*")
Rows(1).Insert: [v1].Value = "zzz"
With [a2].CurrentRegion
With .Offset(, .Columns.Count + 2).Cells(1)
.Value = "zzz"
.Offset(1).Resize(UBound(a) + 1).Value = _
Application.Transpose(a)
Set rng = .CurrentRegion
End With
.AdvancedFilter 1, rng
.Offset(1).EntireRow.Delete
.Parent.ShowAllData: rng.Clear
End With
[M1].Value = "aaa"
ActiveSheet.UsedRange.RemoveDuplicates Columns:=22, Header:=xlYes
Set mRang = Range("M2:M" & Range("A" & Rows.Count).End(xlUp).Row)
Set wRang = Range("W2:W" & Range("A" & Rows.Count).End(xlUp).Row)
ActiveSheet.UsedRange.AutoFilter Field:=13, Criteria1:="="
On Error Resume Next
mRang.SpecialCells(xlCellTypeVisible).Value = "No Descripion"
ActiveSheet.UsedRange.AutoFilter
On Error Resume Next
ActiveSheet.UsedRange.AutoFilter Field:=23, Criteria1:="="
wRang.SpecialCells(xlCellTypeVisible).Value = "Delete"
ActiveSheet.AutoFilterMode = False
Rows("1:1").Delete Shift:=xlUp
Application.ScreenUpdating = True
ActiveSheet.UsedRange.Columns.AutoFit
End Sub
Alf
Bookmarks