如何在VBA中使用正则表达式检测数据

我请讲解下,如何在VBA中使用正则表达式检测数据?

excel表中,有一列数据,数量未知,而且需要重复比较(该数据为文件名):
0401-61-PH1-4-0178-001-001陈岑.tif
0401-61-PH1-4-0178-002-002陈岑.tif
0401-61-PH1-4-0178-002-007陈岑.tif
0401-61-PH1-4-0178-003-003陈岑.tif
0401-61-PH1-4-0178-004-004陈岑.tif
0401-61-PH1-4-0178-005-005陈岑.tif
0401-61-PH1-4-0178-006-006陈岑.tif
0401-61-PH1-4-0178-008-008陈岑.tif
0401-61-PH1-4-0178-009-009陈岑.tif
0401-61-PH1-4-0178-010-010陈岑.tif
0401-61-PH1-4-0178-011-011陈岑.tif
0401-61-PH1-4-0178-012-012陈岑.tif
0401-61-PH1-4-0178-013-013陈岑.tif
先我要用正则表达式做如下检测:
文件名开头是否以0401-61-PH1-4-0178-013-013这样的形式出现,中间以-作为分隔,如果不:修改底色为黄色
0401必须是四位数字,如果是字母这些或者不满四位,修改底色为黄色
61必须是2位数字,如果是任何其他或者不满两位,修改底色为黄色
PH1必须是PH1,如果为其他任何或者不满三位,修改底色为黄色
4必须是1位数字,而且必须是2、4、5、6、7中的一个,如果不是或者缺少,修改底色为黄色
0178必须是4位数字,如果是其他或者不满四位,修改底色为黄色
013必须是3位数字,如果是其他或者不满三位,修改底色为黄色
013必须是3位数字,如果是其他或者不满三位,修改底色为黄色
在0401-61-PH1-4-0178这些相同的情况下,紧跟的三位数字不允许重复,也就是说不能出现0401-61-PH1-4-0178-001-001,0401-61-PH1-4-0178-001-002这样的情况,如果发现,后面与它重复的,底色修改为红色
如果出现0401-61-PH1-4-0178-003-003,紧跟着是0401-61-PH1-4-0178-005-005当然0401-61-PH1-4-0178是一样的,也就是说中间缺码了断掉了,那后面的一个的底色修改为绿色
现求VBA代码,期盼大牛速度现身啊!!!
我本人已经自己解决~~~
最新回答
小白免

2024-10-30 12:27:32

正则可以给你,VBA码么...简单的还行

Dim re
set re = new regexp
re.Pattern = "^\d{4}-\d{2}-PH1-[24-7]-\d{4}-\d{3}-\d{3}[^.]+\.tif$”