当前位置:首页 > 办公设计 > Office教程 > VBA之正则表达式:提取日期和金额

VBA之正则表达式:提取日期和金额

1年前 (2025-05-24)Office教程1310

实例需求:数据保存在A列中,需要将其中的日期和金额分别提取至B列和C列。其中日期也两种不同格式,金额可能包含小数点、千分符和货币标识。

示例代码如下:
Sub RegExp_Date_Num()
Dim Res()
Dim objRegEx As Object
Dim objMH As Object
Dim j As Integer
Set objRegEx = CreateObject("vbscript.regexp")
objRegEx.Pattern = "(\d{4}-\d{2}-\d{2}|\d{4}.\d{2}.\d{2}).*?(([A-Z]{3})*\d+[\d.,]*元)"
objRegEx.Global = True
For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row
form = Cells(i, "A")
Set objMH = objRegEx.Execute(form)
If objMH.Count > 0 Then
Cells(i, 2) = CStr(objMH(0).submatches(0))
Cells(i, 3) = CStr(objMH(0).submatches(1))
End If
Next
Set objRegEx = Nothing
Set objMH = Nothing
End Sub

【代码解析】
第6行代码使用后期绑定创建正则对象。
第7行代码指定正则匹配字符串,

如果直接使用[\d.,]+匹配金额中的数字,则会匹配到单个小数点或者逗号,例如数据为:旧的一年结束,元旦将要来临,此模式可以将匹配到,元。由此可见组织一个严谨的正则表达式需要考虑很多情况。
第8行代码设置为全局搜索模式。
第9行代码第16行代码循环处理工作表中的数据。
第11行代码执行正则匹配,返回结果为MatchCollection集合对象。
第13行和第14行代码分别将日期和金额写入工作表中

扫描二维码推送至手机访问。

欢迎转载或分享本篇文章。

本文链接:https://www.jcba123.com/article/1513

分享给朋友:

“VBA之正则表达式:提取日期和金额” 的相关文章

如何将一个excel表格的数据导入到另一个表中

如何将一个excel表格的数据导入到另一个表中

导入方法:1、打开B表,依次点击“数据”-“自Access”;2、在弹窗中选择“所有文件”选项;3、选中“表A文件”,并点击“打开”;4、选择“Sheet页”并点击“确定”;5、选择“表”和“现有工作表”,然后点击“确定”即可。 本教程操作环境:windows7系统,Microsof...

Excel表格冻结窗口怎么使用?同时冻结多行多列数据

Excel表格冻结窗口怎么使用?同时冻结多行多列数据

当一个表格数据太多,那么它就会离表头越远。我们在查看分析数据时,就没法看到表头标题部分。这样非常不便于查看,那么,有没有好的办法能够解决这一问题呢?其实,我们可以通过Excel冻结窗口来固定表头处,无论我们怎么向下滚动数据,表头依然固定在那不动。这里,小汪老师就来为大家详细的说一下冻结窗口...

Excel分段显示手机号码-自定义格式代码

Excel分段显示手机号码-自定义格式代码

在使用Excel录入数据时,经常会输入手机号码这类长串数据,众所周知,在一些正规机构里面这类长串数据都会以分段形式显示,这样不仅便于查看,而且也比较规范。那么在Excel中,如何对这类数据进行分段设置呢?这里,小汪老师将以自定义格式的方式教大家快速分段数据。     自定义...

XLOOKUP函数经典用法总结

XLOOKUP函数经典用法总结

HI,大家好,我是星光。 今天给大家分享的Excel函数是XLOOKUP,例先说一下它的基本语法。它有六个参数,成功超越大哥大OFFSET,成为参数最多的函数之一。 =XLOOKUP(查找值,查找范围,结果范围,[容错值],[匹配方式],[查询模式]) 参数看起来很多,不过只有前三个是...

让你秒懂Word自动生成目录的操作方法

让你秒懂Word自动生成目录的操作方法

Word排版中自动生成目录一项是许多人的痛楚,特别是在制作长篇文档排版的时候,我们经常会生成目录,那么生成目录要满足哪些条件呢?又应该如何生成呢?今天,易老师就详细的为大家介绍讲解一下! 自动生成目录前提条件 首先,你要明白,不是什么样的长篇文档都适合生成目录的。我们需要满足一些基本条件,...

将多列的区域或数组合并成一列,就用TOCOL函数

将多列的区域或数组合并成一列,就用TOCOL函数

今天分享TOCOL函数的几个典型应用。 这个函数目前可以在Excel 365和最新的WPS表格中使用,作用是将多列的区域或数组转换为单列。函数用法为: =TOCOL(要转换的数组或引用, [是否忽略指定类型的值], [按行/列扫描]) 其中第二参数为0或者省略该参数时,表示保留所有值。为1表示忽略空...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。