Requirement:
The user has a sheet with thousands of rows and wants to delete the entire row if Column D doesn't contain a certain criteria.
If D2 <> contain "XXA", "XXB", "XXC", "XXD", "XXE", OR "XXJ" then the user wants to delete that row and check the next row.
There are numbers/letters before and after the criteria so the user is not sure if to put a * before and after (ie "*XXA*").
Solution:
Sub Button1_Click()
Dim lSTrW As Long
Dim c As Range, x
lSTrW = Cells(Rows.Count, "D").End(xlUp).Row
For x = lSTrW To 2 Step -1
Set c = Cells(x, "D")
If Not c Like "*XXA*" And Not c Like "*XXB*" And Not c Like "*XXC*" And Not c Like "*XXE*" And Not c Like "*XXJ*" Then
Cells(x, "D").EntireRow.Delete
End If
Next x
End Sub
or possible shortened to
If Not c Like "*XX[ABCEJ]*" Then
or
If c Like "*XX[!ABCEJ]*" Then
https://msdn.microsoft.com/VBA/Langu.../like-operator
Obtained from the OzGrid Help Forum.
Solution provided by davesexcel and pike.
See also: Index to Excel VBA Code and Index to Excel Freebies and Lesson 1 - Excel Fundamentals and Index to how to… providing a range of solutions and Index to new resources and reference sheets
See also:
| How to delete empty rows with counter |
| How to Delete/Hide every nth row |
| How to disable edit/delete comments |
| How to create, apply or delete a custom view |
Click here to visit our Free 24/7 Excel/VBA Help Forum where there are thousands of posts you can get information from, or you can join the Forum and post your own questions.