You could use a For..Next loop to check all rows for the text.
Something like this [untested]:
Code:
Dim lRow As Long
Dim lRowToDelete As Long
Dim sSearchText As String
sSearchText = "HAEMOGLOBIN"
With MSFlexGrid1
For lRow = .FixedRows To .Rows - 1
If .TextMatrix(lRow, 1) = sSearchText Then
lRowToDelete = lRow
Exit For
End If
Next lRow
If lRowToDelete >= .FixedRows Then .RemoveItem lRowToDelete
End With
AND (Looks like Arn's code will work for you) just one question. How are you populating your msflexgrid? If it is from a database, please realize that just by removing that row will not delete it from your DB table. You will have to write code to do that.
Also, Arn's code will find and remove ONE instance of a row with "HAEMOGLOBIN" in column 1, starting at the bottom of the grid, and working upward. If there are more than one row, you'd have to either rerun his code over and over or modify it to delete each found row in the for-loop rather than after it.