Hello..

I am trying to search for, find, and delete certain values. I am encountering a problem when looking for the value 3D.1 because there are other cells in the range containing the value 3D.11, 3D.12, etc. The macro is finding these when it should be finding 3D.1

This is especially a problem when 3D.1 has already been deleted because it keeps deleting values that aren't 3D.1 and all the data is now inaccurate.

Is there a way to specify in the range.find method (what I am using) that I want to find 3D.1 with NO CHARACTERS after it?

Thanks.

(if there's a better way of doing any of this, let me know. For example... my if * is nothing then /r else way of finding if something is valid probably isn't the best way to get what I want, but it's the only way I know. Thanks for any help you have).

Code works, just treats 3D.11, 3D.12, etc. as 3D.1

lname is the lesson name (3D.1, 3D.2, etc.)
sname is the student name
gwnamerow is an integer containing the value of the row we're looking at
lspot is the column containing the lesson (in the specified row)
Holder is a dimension (not specified. Is it important to specify all dimensions when declaring them? does this make the program run faster? what would I specify it as? an array?)

Basically, it deletes the lesson, and moves all the other lessons over one, replacing the empty space

Code:
If .Range(.Cells(gwnamerow, 3), .Cells(gwnamerow, 32)).Find(lname) Is Nothing Then
Else
    lspot = .Range(.Cells(gwnamerow, 3), .Cells(gwnamerow, 32)).Find(lname).Column
    holder = .Range(.Cells(gwnamerow, lspot + 1), .Cells(gwnamerow, 31))
    .Range(.Cells(gwnamerow, lspot), .Cells(gwnamerow, 30)) = holder
    If .Cells(gwnamerow, 31).Value <> "" Then .Cells(gwnamerow, 31).Value = ""
    'mark what we found
    Selection.Offset(6 + gwrow, 8) = Left(sname, InStr(sname, ",") - 1) & ", " & lname
    gwrow = gwrow + 1
End If