Excel:vba实现正则匹配数字

复制代码
Sub 提取数字()
Dim cell As Range
Dim sj As Object
Dim regx As Object
Dim ss As Object
Dim n As Integer

'创建了一个 VBScript 正则表达式对象 regx,用于匹配特定模式的字符串
Set regx = CreateObject("vbscript.regexp")
'设置正则表达式属性
With regx
    .Global = True  '表示正则表达式会在字符串中查找所有匹配项,而不仅仅是一个匹配项
    .Pattern = "\d+" '定义了正则表达式模式 \d+,用于匹配一个或多个数字字符
    For Each cell In Range("a2", Cells(Rows.Count, 1).End(xlUp))
        '对当前单元格内容进行正则表达式匹配,并将所有匹配结果存入 sj 集合中
        Set sj = .Execute(cell)
        For Each ss In sj
            '每找到一个匹配项,就将 n 递增 1,用于确定数据写入的位置
            n = n + 1
            '将匹配的数字写入当前行中的下一个单元格.Offset(0, n)指定了写入的位置:与 ss 单元格在同一行,向右偏移 n 列
            cell.Offset(0, n) = ss
        Next ss
        '在处理完当前单元格后,将 n 重置为 0,以便在下一行重新开始
        n = 0
    Next cell
End With
End Sub
相关推荐
KevinCh1 分钟前
Vespa:面向 AI 时代的检索与排序服务平台
数据库
Rick19939 分钟前
Redis查询为什么快
数据库·redis·缓存
fly spider11 分钟前
MySQL索引篇
android·数据库·mysql
oradh23 分钟前
Oracle数据库表存储基本概述
数据库·oracle·oracle基础·oracle入门·oracle表存储
鱼樱31 分钟前
腾讯版小龙虾WorkBuddy试用体验——Excel处理效率翻倍
excel
为什么不问问神奇的海螺呢丶34 分钟前
Oracle Golden Gate 19c 微服务版 (19.1.0.0.4) 静默安装
数据库·微服务·oracle
NineData35 分钟前
使用NineData实现MySQL异地多活场景
运维·数据库·mysql
森叶44 分钟前
逻辑仲裁者:实现多事件关联匹配与事务原子化后执行逻辑的技术方案
数据库·oracle
Navicat中国1 小时前
北京理工大学推荐 Navicat | 高校教育行业应用案例
数据库·navicat·高校·教育版
LucaJu1 小时前
Java + EasyExcel 实现单个接口导出多个Excel
java·excel