Ah. I think it's deleting the entire row, but since the cells are all shifting up, when it goes to the "next" cell it's skipping the row that had just been shifted up. If I use clearcontents instead so that nothing gets shifted, then it works fine. Add code to delete rows with empty cells at the end, and it mostly works how I imagined.
Is there a better workaround? Should I be using something other than a for each loop maybe?
Dim c As Variant
Dim cell As Range
Dim SrchRng As Range
Dim SrchStr As String
Dim RangeDel As Range
Set SrchRng = ActiveSheet.Range("B1:B25")
SrchStr = InputBox("Please Enter A Search String")
For Each c In SrchRng
If c.Value <> SrchStr Then