【Excel VBA编程】自动提取身份证里年龄、出生日期和性别

目录

引言

问题的分析与设计

数据的提取

数据的处理和转化

代码入口设计

代码实现

运行结果

回顾总结


引言

需求如下,根据身份证号码,自动输出年龄、出生日期和性别,分别保存在C列、D列、E列中

手动操作也太麻烦了,不但要截取出生日期,还要根据当前的日期计算年龄,有没有更方便快捷的办法实现呢?别急,下面就来教你一招,就算有更多的数据也能轻轻松松一键搞定!一起来看看吧

问题的分析与设计

需求看似很复杂,其实只要搞清楚身份证的编码规则,所有问题就能解决了。身份证作为每个公民唯一的、终身不变的身份代码,其中包含着很多个人信息,有着自己独特的编码规则。

身份证号码是由18位数字组成,其中,前6位对应省市区;7至14位为出生年月日;15至17位是同一地址码所标示的区域范围内对同年同月同日生人编订的顺序码。其中第17位表示性别,奇数为男性,偶数为女性;最后一位为校验码

了解了以上的编码规则,再结合实际的需求,其实我们只需要提取出7至14位、第17位数字即可解决问题了

数据的提取

前段时间我们一直利用正则表达式来实现数据的提取,如果想用正则表达式,也是有规律可循的,一定也能找到合适的规则。但是结合本期需求的数据特点,还有一种更加简便的方法介绍给大家。

首先把18位身份证号码作为一串字符,就可以使用处理字符串的方法和函数了。

Mid 函数是 VBA 中用于从字符串中提取子字符串的函数。它允许你指定一个起始位置以及要提取的字符数,从而返回所需的子字符串。语法结构:Mid(string, start[, length])

参数说明:

  • string:必需的。表示从中提取子字符串的原始字符串。
  • start:必需的。表示开始提取子字符串的位置(整数)。如果 sta
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wei1019

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值