当前位置:   article > 正文

excel中用正则匹配_在excel用正则表达式匹配表中数据(VBA)

excel 正则匹配 个数

对前一篇文章进行更新升级,有时候需要给正则表达式进行分类,当匹配到某个正则表达式时,则在相应的位置展示出该正在表达式属于哪一类,这样的话,我们就可以很方面的对自己所要处理的很多数据进行分类了

实现上面功能,可以在sheet2中的B列加上对应的正则表达式属于哪一类

sheet1中A列数据与上一篇文章一样

运行下面代码,则出现了想要的效果如下:

然后修改相应的代码如下:

Sub Test()

atr = Worksheets("Sheet1").Range("a65536").End(xlUp).Row

btr = Worksheets("Sheet2").Range("a65536").End(xlUp).Row

btr2 = Worksheets("Sheet2").Range("b65536").End(xlUp).Row

a = Worksheets("Sheet1").Range("a1:a" & atr).Value

b = Worksheets("Sheet2").Range("a1:a" & btr).Value

b2 = Worksheets("Sheet2").Range("b1:b" & btr2).Value

ReDim c(1 To atr, 1 To 1)

Set reg = CreateObject("vbscript.regexp")

With reg

.Global = True

.IgnoreCase = True

For ar = 1 To atr

For br = 1 To btr

If btr = 1 Then

.Pattern = b

Else

.Pattern = b(br, 1)

End If

If .Test(a(ar, 1)) Then

c(ar, 1) = b2(br, 1)

Exit For

End If

Next

Next

End With

Range("c1:c" & atr) = c

Set reg = Nothing

End Sub

这种方法可以基本解决我们日常工作所遇到的问题,但是还需要完善,比如,当一个数据同时满足几个正则表达式,通过本例中的代码,结果只会得到第一次匹配的类,显然,对于有些要求苛刻的需求,这种匹配结果是不够的。 笔者也在想办法去解决这个不足,同时希望集思广益,大家能够多多提供意见。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/170474
推荐阅读
相关标签
  

闽ICP备14008679号