Question

Is it possible to treat wildcards as normal chars in the range.find function.

I am searching through a list for string matches, but am running into issues, as some of the strings contain wild cards. Example:

List:
ab
cde
fghi
jk
?l

r = list.range.find(s, LookAt:=xlWhole)

if s = "??" this would result in r equalling "ab"
Where as I want "??" to be treated like a normal string that would only match a string of "??"
If s = "?l" I would want r to equal "?l" not "ab"

Was it helpful?

Solution

Use a ~, i.e ~?.

For your ?l, it is ~?l.

General solution:

s = Application.WorksheetFunction.Substitute(s, "?", "~?")
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top