可以在VBA中找到如何使用regex替换

时间:2014-08-07 14:48:56

标签: regex vba excel-vba excel

我在Excel中有一个表,其中一个列包含类型的字符串:125j,0j,12j等。

我希望使用VBA将数字的值(在此列中)替换为数字(即我想删除" j")。这就是我所拥有的:

Dim reg As Object
Set reg = CreateObject("VBScript.RegExp")
reg.IgnoreCase = True
reg.Pattern = "^[0-9]+"

If reg.test(Cells(i, 4).Value) Then
    Cells(i, 4).Value = reg.Execute(Cells(i, 4).Value)
End If

但它不起作用,有人知道如何纠正它或从另一个命令获得相同的结果吗?

谢谢

1 个答案:

答案 0 :(得分:1)

.Execute方法的结果是MatchCollection个对象。您可以明确地使用它:

Dim reg As Object
Dim allMatches As Object

Set reg = CreateObject("VBScript.RegExp")
reg.IgnoreCase = True
reg.Pattern = "^[0-9]+"

If reg.test(cells(i, 4).Value) Then
    Set allMatches = reg.Execute(cells(i, 4).Value)
    cells(i, 4).Value = allMatches(0)
End If

或暗示:

    cells(i, 4).Value = reg.Execute(cells(i, 4).Value)(0)