Fozzedout
0
Q:

excel vba replace part of a 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")


7
'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
4

New to Communities?

Join the community