四时宝库

程序员的知识宝库

VBA|Excel中与一个通用小程序来利用正则表达式进行查找替换

有如下数据,需要将[]及内部的数字全部替换为空白:

如果一个个去删则显得很笨拙。

[]及内部的数字可以使用颪表达式表示:"\[\d+\]"

在下面的查找替换对话框中无法使用正则表达式:

可以考虑编写VBA代码,进行替换,其它类似的查找,只是修改一下正则表达式即可,有一定的通用性:

代码:

运行后效果:

附源代码:

Sub regReplace()

Dim reg As Object

Dim s As String

Set reg = CreateObject("vbscript.regexp")

reg.Pattern = "\[\d+\]"

reg.Global = True

Dim lr, lc As Integer

lr = Range("A" & Cells.Rows.Count).End(xlUp).Row + 1

lc = Range(Cells(1, Columns.Count), Cells(1, Columns.Count)).End(xlToLeft).Column + 1

Range(Cells(1, 1), Cells(lr, lc)).Select

For Each rng In Selection

s = rng.Value

rng.Value = reg.Replace(s, "")

Next rng

Range(Cells(1, 1), Cells(lr, lc)).Select

For Each rng In Selection

s = rng.Value

rng.Value = VBA.Trim(s)

Next rng

End Sub

-End-

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接