excel文件格式:
需求:用正则表达式提取D列的***,写到E列中
步骤:
1.打开excel中的vb编辑器,点击“文件”--“选项”--“自定义功能区”,勾选“开发工具”
2.点击确定后,按Ctrl+F11打开vb窗口,点击查看代码,打开代码窗口
3.在代码窗口中输入代码
SubtestRegexp()Dima,b,cDimregexpAsObjectDimdAsStringSetregexp=CreateObject("vbscript.regexp")Withregexp.Global=True.IgnoreCase=True.Pattern=".*.{2}\d{8}(\d{18}|\d{17}[xX])"EndWithForEachaInRange("D2:D4")Setb=regexp.Execute(a.Value)Remb.Count大于0就是匹配成功Ifb.Count>0ThenForEachcInbRemSubMatches.Count大于0就是捕获成功Ifc.SubMatches.Count>0ThenRemvbCrLf是单元格内换行符d=d+c.SubMatches(0)+vbCrLfEndIfNextcEndIfWorksheets("Sheet1").Cells(a.Row,a.Column+1).Value=dd=""NextaEndSub
4.按F5运行代码
5.运行效果
参考文档:
VBScript RegExp Object:正则对象说明(英文)
VBScript-RegExp对象的详细用法