Selected Answer
Ghost
The filtering works as expected (I. e. you will get several rows if the search criteria are met by those rows).
If I understand you correctly, you don't wanrt to see Ash appear twice if there are two rows including Ash.
Assuming the CODE item is variable but the Customer ID and Name are linked, you can filter the data but then bring just those two columns to Sheet1 then use the Range.RemoveDuplicates method to remove duplicates of name (so column 2 of the reduced range) . Change the last lines of your code to read:
Sheet2.Range("D7:E" & LastResultRow + 1).Value = .Range("W6:X" & LastResultRow).Value 'Bring over search results for first 2 columns only
Sheet2.Range("D7:E" & LastResultRow + 1).RemoveDuplicates Columns:=2, Header:=xlNo 'remove duplicates in column2 of the range
End With
where changes are shown in bold.
If you search for just "h" then you will get several names (each containing h but once only).
Hope this is the result you were aiming for.