Excel宏和正则表达式

时间:2015-08-11 17:07:26

标签: regex excel vba excel-vba

我在excel表中有一个包含一些数据的列。我想编写一个宏来替换单元格内容,使其出现在具有特殊字符的单词之前。 例如:

细胞内容:

M.Ramalingam                  S/o Mahalingam

应替换为:

M.Ramalingam

细胞内容:

Balkis Beevi                      W-o Mahamed Ali Jinna 

请替换为:

Balkis Beevi

2 个答案:

答案 0 :(得分:1)

这样的东西
Function StrNew(strIn As String) As String
Dim objRegexp As Object
Set objRegexp = CreateObject("vbscript.regexp")
With objRegexp
    .Pattern = "^(.+)\b.+[\-\/].*?$"
    StrNew = .Replace(strIn, "$1")
End With
End Function

答案 1 :(得分:0)

您应该使用自定义公式:

Function CHANGE(text As String, char As String)
    Dim sArray() As String

    sArray() = Split(text, char)

    CHANGE = Trim(sArray(0))
End Function

然后你可以在单元格中使用它: “= CHANGE(B2;” S / O “)” 第一个参数是包含要分割文本的单元格,第二个参数是特殊字符。

我希望这可以帮助你...