find substring in string vba code example
Example 1: excel vba check if a string contains another string
'Use VBA's InStr() function to check
'if a string contains another:
MsgBox InStr("Excel Hero", "Hero") 'Displays: 7
MsgBox InStr("Excel Hero", "hero") 'Displays: 0
MsgBox InStr("Excel Hero", "hero", 1) 'Displays: 7 (case insensitive)
'InStr() searches from left to right and returns the position
'of the first match found, or zero if no match is found.
'By default, InStr() starts at the first character in the first
'string. But there is an optional first argument that specifies the
'first character to start the search at:
MsgBox InStr(5, "Excel Hero", "e") 'Displays: 8
'To search from right to left:
MsgBox InStrRev("Excel Hero", "e") 'Displays: 8
'But note that InStrRev() doe NOT have the optional first argument
'that specifies which character to start with.
'If the position is NOT important, VBA's Find operator can be used
'to determine if one string is contained in another:
MsgBox "Excel Hero" Like "*Hero" 'Displays: True
'Notice that 'Find' supports wild card characters.
'Full documentation:
' https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/like-operator
Example 2: vba search string position
'Position of "DOG" from 8th character, case insensitive
Debug.Print InStr(8, "My Dog is a dog", "DOG", vbTextCompare) ' 13