在excel 2007的vbscript中使用Backrefrence进行搜索和替换

时间:2010-02-17 16:15:10

标签: vbscript excel-vba regex backreference vba

我正在使用excel 2007,我正在添加一个看起来像这样的宏:

Function S(Value As String, Pattern As String, ReplaceWith As String, Optional IgnoreCase     As Boolean = False)
    Dim r As New VBScript_RegExp_55.RegExp
    r.Pattern = Pattern
    r.IgnoreCase = IgnoreCase
    r.Global = True
    S = r.Replace(Value, ReplaceWith)
End Function

我可以在工作表中使用这样的搜索和替换功能:

=s("Say Hello","Hello","HI",FALSE)

工作正常。

我真正想要做的就是这样:

从文本中搜索大写字母:“MyName”
结果:“我的名字”

我使用[A-Z]进行搜索似乎无法用空格替换它并且原始字符完好无损。

我知道我需要使用backrefrence,但无法想办法做到这一点,因为我对vbscript和regex都不熟悉。

感谢您的帮助! :)

1 个答案:

答案 0 :(得分:0)

有关如何使用反向引用,请参阅here