Find does work with dates but it can be very temperamental, that's basically why I suggested using Application.Match and that's what I tend to use too, especially when the ultimate aim is to find a column/row.
As for handling the value not being found with Application.Match, try something like this.
Dim Res As Variant
' other code
Res = Application.Match(cld.Offset(3,0).Value2, shs.Cells(homeRow).resize(,52),0)
If IsError(Res) Then
MsgBox cld.Offset(3,0).Value2 " not found."
Else
MsgBox cld.Offset(3,0).Value2 & " is in column " & Res
End If.
Obviously that's an example and uses message boxes for illustration purposes.
The main thing is that you declare the variable that takes the result from Application.Match as Variant which to allow it to accept error values.
When Application.Match (or any other worksheet function) fails it returns an error value, so we can check for that using IsError.
Bookmarks