繁体   English   中英

可以找到如何在VBA中使用正则表达式替换

[英]Can find how to use replace with regex in VBA

我在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

但这是行不通的,有人知道如何压缩它或从另一个命令中获得相同的结果吗?

谢谢

.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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM