que suerte/coincidencia hace unos días necesitaba hacer lo mismo y me arme esta función.
'Ejemplo uso
'MsgBox (R_B("Hola soy: Daniel :)", ": ", " :)", "Pink"))
'replace_between
Private Function R_B(cadena As String, str1 As String, str2 As String, strReemplazo As String, Optional Count As Long = -1) As String
Dim Inicio As Long
Dim Fin As Long
Dim Largo As Long
Dim sRemplazar As String
Largo = Len(str1)
Inicio = InStr(1, cadena, str1)
If Inicio = 0 Then R_B = "": Exit Function
Inicio = Inicio + Largo
Fin = InStr(Inicio, cadena, str2)
If Fin = 0 Then R_B = "": Exit Function
sRemplazar = Mid(cadena, Inicio, Fin - Inicio)
cadena = Replace(cadena, sRemplazar, strReemplazo, 1, Count)
R_B = cadena
End Function
saludos