excel vba replace part of a string code example
Example 1: excel vba replace part of a string
'VBA function to replace a substring... if it exists in the full
'string. Checking to see if it exists is very quick. Replacing is
'slow by comparison. So it is wise to check first:
Function IfInReplace$(s$, substr1$, replacement$, Optional CaseSensitivity = vbTextCompare)
If InStr(1, s, substr1, CaseSensitivity) Then s = Replace(s, substr1, replacement, , , CaseSensitivity)
IfInReplace = s
End Function
'---------------------------------------------------------------------------------------------------
MsgBox IfInReplace("abc123def", "123", "") '<--displays: abcdef
Example 2: excel vba replaceall in string
'VBA function to make multiple replacements in a template string:
Function TemplateReplace$(template$, ParamArray replacements())
Dim c&, s$, t$, e
s = template
For Each e In replacements
c = c + 1
t = "|%" & c & "|"
If InStrB(e, "~~") Then e = Replace(e, "~~", Chr(34))
If InStrB(s, t) Then s = Replace(s, t, e)
Next
TemplateReplace = s
End Function
'--------------------------------------------------------------------
Const TEMPLATE = "SELECT * FROM |%1| WHERE (survived = |%2|)"
MsgBox TemplateReplace$(TEMPLATE, "titanic", "~~true~~")
'Displays: SELECT * FROM titanic WHERE (survived = "true")