在Excel中将“,00文本”更改为“,00 |文本”

时间:2019-06-16 17:05:19

标签: excel replace

我想将excel字符串中的某些文本替换为其他字符串。

数据看起来像是:“向文本中再添加一些文字0.00,00,再向文本中再添加文字0,00”

文本可以是任何东西,但不包含小数。 0,00是数字的示例,其范围可以是0,00到9999,99。通过公式,我想将上面的示例更改为:

数据看起来像是:“向文本多输入0,00 |向文本多输入0,00 |文本”

如何在Excel中安排呢?

正在寻找正则表达式替换之类的东西

3 个答案:

答案 0 :(得分:2)

您可以使用VBA编写的用户定义函数轻松完成此操作:

Option Explicit
Function addPipes(S As String) As String
    Dim V As Variant
    Dim I As Long

V = Split(S)
For I = 0 To UBound(V)
    If V(I) Like "*#,#*" Then V(I) = V(I) & " |"
Next I

addPipes = Join(V)

End Function

尽管,如果您的最终目标是在管道上拆分字符串,并且无论如何都在VBA中工作,则可以使用一个简单的宏进行拆分。

此外,如果您的某些单词包含d,d(其中d是一个数字)的模式,我们将不得不修改Like比较。

答案 1 :(得分:1)

正则表达式(UDF,用户定义的函数):

Function ReplaceText(cell)
    With CreateObject("VBScript.RegExp")
        .Pattern = "(\d\s)": .Global = True
        ReplaceText = .Replace(cell, "$1| ")
    End With
End Function

答案 2 :(得分:0)

尝试使用A2中的原始文本字符串,

=REPLACE(REPLACE(A2, FIND(",", A2, FIND(",", A2)+1)+3, 1, " | "), FIND(",", A2)+3, 1, " | ")

没有本地工作表正则表达式,但可以通过VBA用户定义的函数轻松完成。