我想将excel字符串中的某些文本替换为其他字符串。
数据看起来像是:“向文本中再添加一些文字0.00,00,再向文本中再添加文字0,00”
文本可以是任何东西,但不包含小数。 0,00是数字的示例,其范围可以是0,00到9999,99。通过公式,我想将上面的示例更改为:
数据看起来像是:“向文本多输入0,00 |向文本多输入0,00 |文本”
如何在Excel中安排呢?
正在寻找正则表达式替换之类的东西
答案 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用户定义的函数轻松完成。