[Range].Find Help

D

Dan R.

I'm using the following to search for values on each sh, if/when found
it copies values back to the activesheet. But if the value is in
multiple columns it sometimes uses that value instead. Since it's
only supposed to search in column 3 why would it even find that value
in the first place?

With sh
xEnd = .Cells(Rows.count, 3).End(xlUp).Row
Set xRng = .Range(.Cells(2, 3), .Cells(xEnd, 3))
End With

Set rng = xRng.Find( _
What:=i.Value, _
LookIn:=xlValues, _
MatchCase:=False)

Thanks,
-- Dan
 
D

Dave Peterson

I've never seen .find work that way.

Maybe it's time to double check to see what was found:

after the "set rng = xRng.find(...)" stuff:

if rng is nothing then
msgbox "not found"
else
msgbox rng.address & vblf & xrng.address
end if

===
Maybe it's picking up a partial match that you don't expect.

I would specify all the parms for that .Find() statement. If you don't, then
excel/VBA will use what was ever last used (either in code or by the user). And
that may not be what you want.
 
D

Dan R.

I'm sure the problem lies somewhere in the rest of my code but I
figured I'd ask. Thanks again Dave.

-- Dan
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top