vba check if string contains substring 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 check if a cell contains a letter or string
Sub IfContains()
If InStr(ActiveCell.Value, "string") > 0 Then
MsgBox "The string contains the value."
Else
MsgBox "The string doesn't contain the value."
End If
End Sub
Example 3: excel vba string contains
Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP" ' String to search in.
SearchChar = "P" ' Search for "P".
' A textual comparison starting at position 4. Returns 6.
MyPos = Instr(4, SearchString, SearchChar, 1)
' A binary comparison starting at position 1. Returns 9.
MyPos = Instr(1, SearchString, SearchChar, 0)
' Comparison is binary by default (last argument is omitted).
MyPos = Instr(SearchString, SearchChar) ' Returns 9.
' Not found
MyPos = Instr(1, SearchString, "W") ' Returns 0.