VBA function : How to search a string in another string?
Add this UDF
Function StringFound(val, aryValues)
Dim i As Long
Dim aryTmp
If TypeName(aryValues) = "Range" Or _
VarType(aryValues) vbArray Then
aryTmp = aryValues
Else
StringFound = "Error in lookup values"
Exit Function
End If
For i = LBound(aryTmp) To UBound(aryTmp)
If val Like "*" & aryValues(i, 1) & "*" Then
StringFound = 1
Exit Function
End If
Next i
StringFound = 0
End Function
and use like so
1) Create a range of state ids, named say States, and a formula of
=IF(stringfound("This state NM",States),1,0)
2) Include the states in the formula
=IF(stringfound("This state NM",{"AL";"AZ";"CA";"NM"}),1,0)
--
HTH
RP
(remove nothere from the email address if mailing direct)
"bibi-phoque" wrote in message
om...
Hi all,
I am a beginner in VBA, and I need a function that return 1 or 0
depending if my string contains one of the US states.
To explain a bit more :
If my cell = "East Syracuse, NY"
I want to return 1 because there is a US state in the string.
If my cell = Karlsruhe, Germany
I want to return 0
I have a list of all the US states (2 letter code).
For the function, I don't mind if it is a big "if then" with all the
50 conditions (number of US states).
I am aware of the FIND function in Excel, which does what I need, but
the formula is too big (I need to compare with the 50 US states), it's
why I need a macro. And FIND is not a vba function...
One more thing : it has to be case sensitive.
Any help would be appreciated.
Thanks in advance,
Yann
|