View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Keith R[_2_] Keith R[_2_] is offline
external usenet poster
 
Posts: 37
Default Repeated search on the same worksheet

I'll let one of the group experts give you a more definitive answer, but in
the meantime this might give you a place to start;

Set cell = sheet.Cells.Find(label);

sets your "cell" range to a specific cell where you found the first match

cell = cell.Cells(1, 2) ' one cell to the right

may set your range to a specific cell that doesn't include your match

I'd add a line at the top of the procedure to reset the cell range to the
entire sheet, or to prevent duplicate matches, the entire sheet below the
area of the last match.

I'd also avoid using the word "cell" as a variable (maybe "mycell" or
"targetcell" would work), but that's just me.

HTH,
Keith


"Jens Lenge" wrote in message
...
Hi folks,

I have trouble doing repeated searches on the same worksheet. I use this
small function to find a specific value on a given worksheet:

Function Find(ByRef sheet As Worksheet, ByVal label As String) As String
Dim cell As Range
Set cell = sheet.Cells.Find(label);
If cell Is Nothing Then
Find = "(not found)"
Exit Function
End If
cell = cell.Cells(1, 2) ' one cell to the right
Find = cell.Value
End Function

I want to have the search on the entire worksheet each time the function
is called. In particular, when I call it twice with the same "sheet" and
"label" arguments, I want it to find exactly the same occurence.

However, the function does only return the first (and only) occurence of
"label" when it is called for the first time. A second call fails and
delivers "(not found)".

What the heck am I doing wrong?

Jens