vba 正则表达式_VBA中正则表达式之字符组

我的目标:让中国的大学生走出校门的那一刻就已经具备这些Office技能,让职场人士能高效使用Office为其服务。支持鹏哥,也为自己加油!

先来看一个案例:

af9d850888509d82fd1a025c0d4a8827.gif

如上图:序号和后面的标题写在了一起,有的序号是一位数字,有的是两位数字,有的是三位数字,还有五位数字的。另外,序号和标题之间有的是顿号连接、有的是冒号连接,有的是空格连接,还有的没有任何分割符号直接连接在一起的。

现在需要把后面的标题提取出来。

根据我们前面几节学习的知识,我们只要利用一个表达式把标题前面的数字和分割符号匹配出来,然后替换为空白就可以了。

元字符“\d”表示任意一个数字,因为案例中数字位数不确定,所以用量词“+”来匹配多位数字,这样数字部分就可以匹配出来了。

数字与标题之间的空格、冒号、顿号怎么表示呢?

我们可以用[ :、]来表示,类似[a-z]表示a到z的任意一个字母,[123]表示1或者2或者3,这样的表达方式就叫字符组,由一些字符组成一个集合,表示匹配该集合中任意一个字符。

因为有的序号和标题之间直接相连,所以我们用“\d+[ :、]?”,量词?表示出现0次或1次,出现0次就代表啥都没有,也就是序号和标题直接相连的情况。

上面的案例代码如下:

Sub 拆分()Dim regx As Object, rng As Range, nSet regx = CreateObject("vbscript.regexp")With regx      .Global = True      .Pattern = "\d+[、:]?"        For Each rng In [a1:a12]        n = n + 1        Cells(n, 2) = .Replace(rng, "")        NextEnd WithEnd Sub

向右滑动可以查看完整代码

字符组在前几节的内容中也出现过,在这节我们提了下它的概念,让大家知道到字符组到底是什么意思。

本节的分享就到这里,鹏哥祝大家每天都有进步。

学习点VBA技术,从此高效工作!

从基础操作到VBA,

两杯咖啡的钱,

换取一份如此详细的Excel视频资料,

你还在犹豫?

欲购从速,联系微信号:527240310

非诚勿扰!

每天进步一点,每天提升一点!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值