To finish out the trail of thought...
<font face=Courier New><SPAN style="color:#00007F">If</SPAN> InStr(1, Cells(i, "D").Value, "Run Date") <> 0 <SPAN style="color:#00007F">Then</SPAN></FONT>
Also, some minor changes to your routine...
<font face=Courier New><SPAN style="color:#00007F">Sub</SPAN> DeleteRowsTOTALONLY()<br> <SPAN style="color:#00007F">Dim</SPAN> c <SPAN style="color:#00007F">As</SPAN> Range, SrchRng <SPAN style="color:#00007F">As</SPAN> Range<br> <SPAN style="color:#00007F">Set</SPAN> SrchRng = ActiveSheet.Range("A1:I" & Cells(Rows.Count, "I").End(xlUp).Row)<br> <SPAN style="color:#00007F">Do</SPAN><br> <SPAN style="color:#00007F">Set</SPAN> c = SrchRng.Find("Total Only", LookIn:=xlValues, LookAt:=xlPart, MatchCase:=True)<br> <SPAN style="color:#00007F">If</SPAN> <SPAN style="color:#00007F">Not</SPAN> c <SPAN style="color:#00007F">Is</SPAN> <SPAN style="color:#00007F">Nothing</SPAN> <SPAN style="color:#00007F">Then</SPAN> c.EntireRow.Delete<br> <SPAN style="color:#00007F">Loop</SPAN> <SPAN style="color:#00007F">While</SPAN> <SPAN style="color:#00007F">Not</SPAN> c <SPAN style="color:#00007F">Is</SPAN> <SPAN style="color:#00007F">Nothing</SPAN><br><SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">Sub</SPAN></FONT>
It will keep your range dynamic, and the range object is declared as one as opposed to leaving it as a Variant type. Also, the Find method will remember what you used last as its settings and use those, so be sure to specify any settings you don't want as 'assumed'.
HTH