使用RegEx查找和替换,无需用户输入

时间:2014-07-16 01:29:48

标签: regex excel-vba vba excel

我试图在一系列单元格中找到模式的每个实例,并用字符串文字替换这些实例。

Sub poBoxRegEx(myRange As Range)
    Dim myRegEx As New VBScript_RegExp_55.RegExp
    myRegEx.Pattern = "^[p|P][ |\.]*[o|O|0][\.]* ([b|B]ox[ ]*)"
    myRegEx.ignoreCase = True
    myRegEx.Global = True
    myRegEx.MultiLine = True

    myRange.Value = myRegEx.Replace(myRange.Value, "PO Box ")

End Sub

现在我在网上找到所有其他主题和用例,以及在哪里创建可通过功能栏访问的功能。我不需要它,因为我没有创建解析A列中的文本并将结果输出到B列的内容。不,我只想要这个find和replace来替换原始单元格中的原始文本。

1 个答案:

答案 0 :(得分:1)

如果您的范围大于一个单元格,则需要循环。

Sub poBoxRegEx(myRange As Range)
    Dim myRegEx As New VBScript_RegExp_55.RegExp
    Dim cell As Range
    myRegEx.Pattern = "^[p|P][ |\.]*[o|O|0][\.]* ([b|B]ox[ ]*)"
    myRegEx.ignoreCase = True
    myRegEx.Global = True
    myRegEx.MultiLine = True

    for each cell in myRange
        cell.Value = myRegEx.Replace(cell.Value, "PO Box ")
    next
End Sub