_($0PXQFQ7Y(P~4838LJ_]L.png

管理培训搜索
18318889481 17875936848

财审
| 数据库服务

财税信息库

| 金融会计专题

融资租赁会计 并购会计 期权会计 银行会计 估值管理 贷款公司会计 金融审计 资产管理会计 套期会计 股票会计 金融工具 公允价值计量

| 转创平台
| 法证会计
| 国际财务管理

财政支出绩效评价 国际企业财务管理 国际会计 外商投资 国际财务准则 ISSB动态追踪 转创全球会计 关联申报系列

| 会计中心

医药会计 成本会计 管理会计 无形资产会计 交通会计 政府管理会计 建设会计 涉税会计 工会会计 会计工厂 国企会计 会计监督 会计信息化 商业会计 教育会计 数字会计 财政会计 电子发票

| 财务咨询

财务顾问 财税金融 财务管理咨询 财会资管 内控审核 公共财务总监 财务分析

| 内部审计专题

内部审计 内部控制审计 内部审计规程 公用经费审计 内部审计准则 银行内部审计 内部审计制度 内部审计指南 内审质量评估 房地产企业内部审计

| 审计创新与全球化

信息技术审计ITA 国际审计与内部监督 电子数据处理审计EDPA 数字化函证 国际审计准则与实务 大数据审计 数据采集与审计 区块链审计 信息系统审计 电子数据审计 电子商业汇票跨境支付 可信安全体系

| 代理记账中心

健顺财务咨询 会计园地 会计处理 代理记账 工商注册 账务处理

| 会计师事务所

会计准则 票研社 会计师事务 财务审计 尽职调查

| 审计中心

风险审计 工程造价审计 物流审计 人力资源审计 预算审计 碳审计 固定资产审计 投标审计 政府审计 资金管理审计 工程审计 行业动态 绩效审计

| 审计及鉴证

审计服务 财务报告审计服务 审计及鉴证服务 上市公司审计 税务审计 风险导向审计

| 专项审计

离任审计 清算审计 专项审计 司法审计 经济责任审计 清产核资 反舞弊审计

| 审计工厂

竣工决算审计 大数据审计 网络安全审计 法证会计 反舞弊中心 财税审计 审计监督 教育内部审计 预决算审计 审计质量评估 绿色审计 审计实务 合规审计 审计信息化 审计之家 审计监督

| 审计咨询服务

资产评估审计 经济责任审计 资产审计 IPO审计 财务审计 财政审计

| 利用VBA正则表达式匹配文本中的数字当前您所在的位置:首页 > 财审 > 审计工厂 > 审计信息化

在审计工作中,可能会面对需要提取文本中数字的场景,尤其数据行数较多时,利用VBA正则表达式将会大幅度提升工作效率。正则表达式的作用是检索、替换那些符合某个规则的文本,故又称之为“规则表达式”。本文意图探讨在电子表格中使用正则表达式来获取单元格里文本中的数字,VBA作为VB的子集,同样支持正则表达式的功能,在本文中,VBA正则表达式和VB正则表达式的概念是等同的。本文将以此例展开探讨表中某列单元格内容形式结构类似为“差旅费500.16/ 2人”,我们可以获取其中“500.16”和“2”这两个数字,用来进行数学运算。

一、编写“正则表达式”的规则

这是为了确定文本中数字出现时的规则。例如“500.16”,它有如下规则(特征):一是首位数字不为0,二是具有小数点和小数,三是小数部分最后一位不为0。同时,对于“2”这个自然数,它只是单个整数而已,没有小数位。那么现在需要制定一种规则,能够同时满足以上所有要求,且无需关注每一个数字的整数部分和小数部分到底有几位。正则表达式是这样的表示的:普通字符+元字符。普通字符就是大小写字母、数字、中文等,比如[1-9]表示19中任意一个数字,[a-z]表示从az的任意一个小写字母。而元字符看似是特殊符号,其实它另有含义。元字符有很多种,为便于理解接纳此概念,本文中只列举本案例所需元字符。

例如反斜杠后面一个d(\d)表示一个数字字符,等价于[0-9]

例如一个星号(*)表示匹配前面的内容任意次。

例如一个点(.)表示匹配任意一个普通字符。

例如一个反斜杠(\)表示将其后面的字符只表达其原本的意思,比如反斜杠后面一个点(\.)只表示普通字符点(.)的本身。

例如一个问号(?)表示匹配前面的内容0次或一次。

例如一个竖线(|)表示或运算,比如(x|y)表示要么匹配x,要么匹配y

例如可以使用成对儿的括号“()”将一个规则与别的规则区分开来。

综上所述,我们可以构造出本例所需正则表达式的规则:([1-9]\d*(\.\d*[1-9])?) | ([0]\.\d*[1-9])。它表示:数字的第一位是不为0的整数([1-9]);第一位数的后面有任意位个数(\d*);该数的小数点后可以有任意位数(\.\d*);且小数部分最后一位是不为0的整数([1-9]);但该数字只能有0个或1个小数部分,所以要将小数部分的规则用括号括起来并在后面加上问号“(\.\d*[1-9])?”;亦或者(|);匹配一个以0开头([0])小于1的小数,该数的小数点后可以有任意位数(\.\d*);且小数部分最后一位是不为0的整数([1-9]);

二、在VBA中应用正则表达式

第一步需要打开EXCEL,点击“文件”→“选项”→“自定义选项卡”将“开发工具”选项卡置顶于最上方菜单栏,在“开发工具”选项卡打开VB编辑器,从编辑器最上方菜单栏点击“工具”→“引用”,找到“Microsoft VBScript Regular Expressions 5.5”,将其复选框打勾,然后点击确定,此时VBA便已经引用了VB正则表达式的功能。

VB正则表达式有四种属性,在本案例中只需要设置其中两种:GlobalPatternGlobal是一个“非真即假”的二元对立类型的值,当Global等于True(真)时,正则表达式将会匹配整个文本中的内容,当Global等于False(假)时,则只匹配第一个结果,在本案例中需要将Global设置为True,以便同时匹配“500.16”和“2”这两个数字。而Pattern是一个字符串,用来存储我们定义好的正则表达式规则,即Pattern = ([1-9]\d*(\.\d*[1-9])?) | ([0]\.\d*[1-9])”。

VB正则表达式有三种功能:判断是否成功匹配、替换目标字符、匹配目标字符。在本案例中,我们只需要用到“匹配目标字符”这个功能,即Execute(源文本),该功能把在源文本中匹配到的结果存放到一个集合当中,且每个匹配到的结果都会自动标上索引,同时还会获取匹配结果在源文本中的起始位置、长度。

接下来,便可以在代码中定义一个正则表达式,设置好Global和Pattern属性,依照Pattern中存储的规则,利用Execute(源文本)功能去匹配整个文本。示例代码和结果如下:

三、总结

本文描述了一个简单案例,如果进一步结合VBA常用方法,可以对工作簿、工作表、单元格进行批量处理,以达到工作人员“解放劳动力,提高生产力”的效果。虽然本文所给出的正则表达式规则已能够处理大多常见数字,但仍有缺陷,比如无法匹配负数。需要注意的是,针对每一种匹配场景,正则表达式规则的编写并不是固定不变的,可以根据自身理解去编写,但务必做到逻辑上的严谨有序。


转创君
企业概况
联系我们
专家顾问
企业文化
党风建设
核心团队
资质荣誉
领导资源
专家库
公司公告
资源与智库
战略合作伙伴
质量保证
咨询流程
联系我们
咨询
IPO咨询
中国企业国际化发展战略
投融资规划
企业管理咨询
人力资源管理
风险管理
竞争战略
集团管控
并购重组
家族办公室
资产管理
股权设计
企业管治与内部审计
企业估值
价值办公室
内控咨询
投资银行
管治、内控及合规服务
法律咨询
服务
管理咨询服务
投融资规划
人力资源
资产评估服务
会计服务
科技服务
资质认证
ESG服务
商务咨询
内部控制服务
转创投服
金融服务咨询
企业服务
财会服务
翻译服务
财审
金融会计专题
法证会计
国际财务管理
会计中心
财务咨询
内部审计专题
审计创新与全球化
代理记账中心
会计师事务所
审计中心
审计及鉴证
专项审计
审计工厂
审计咨询服务
税律
财税中心
转创税务
华税律所
税务师事务所
IPO财税
国际税收
涉税服务
金融
纳斯达克
并购交易服务
北交所
IPO咨询
深交所
上交所
直通新三板
董秘工作平台
独立董事事务
SPAC
资本市场服务中心
澳洲上市
加拿大上市
估值分析事务
香港联交所
新交所
金融分析师事务所
合规
合规与政府管制
企业合规
网络安全与隐私保护
法证会计与反舞弊
反洗钱与制裁合规
反垄断中心
企业合规管理咨询
合规中心
转创全球企业合规
合规律师事务所
金融安全与合规
海关及全球贸易合规
ESG合规
反欺诈中心
合规中心(产业)
知识产权合规专题
私募股权基金合规
法信
征信管理
信用中心
法信中心
信用评级
价值办公室
联合资信
国际信用
安企中心
转创法信
诚信管理
产服
产业中心
企业与产业管理
行业中心
转创产研
城市中国
转创科研
全球城市
乡村振兴战略
创新创业中心
转型升级中心
数据经济与网安
绿创中心
双碳与可持续发展
管理
并购重组
转创国际企业研究所
创新创业
转型升级
投融资与股权激励
ESG中心
管理咨询
资产评估中心
人力资源
IPO咨询
法律
刑事法律服务
资本市场法律服务
财税金融法律事务
转创国际合规律师
民商事法律服务
公司法律服务
公共法律服务中心
转创国际法律事务所
内控
危机管理
金融风险专题
风险管理中心
网络安全与隐私保护
企业风险管理
独立董事
风险控制师事务所
国际风险研究
风险管理咨询
监督中心
管制中心
风控中心
内部控制中心
经济安全与企业内控
监管中心
转创
转创深圳(深莞)
转创广佛
转创国际福建
转创梅州
客汕经济
转创珠三角
转创潮州
转创网校
转创国际汕头
转创揭阳
18318889481 17875936848
在线QQ
在线留言
返回首页
返回顶部
留言板
发送