打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Excel之VBA常用功能应用篇:自动识别身份证号码获取性别、年龄、出生日期

我们的18位身份证号码其实包含了我们的所在省市县+出生日期+性别,今天就给大家分享如何使用Excel VBA来解析身份证号码的性别、年龄和出生日期。

1.打开我们的Excel VBA编辑器

2.将下列解析身份证号码的VBA代码贴入

Sub sfz()

Dim str, rws, rg As Range

rws = Sheet1.Range("a" & Rows.Count).End(xlUp).Row

For i = 2 To rws

Set rg = Range("a" & i)

'男女判断并赋值

If Mid(rg.Value, 17, 1) Mod 2 = 0 Then

'偶数则为女

Range("b" & i) = "女"

Else

'奇数则为男

Range("b" & i) = "男"

End If

'获取身份证号码中的出生日期,并格式为xxxx年xx月xx日

Range("c" & i) = Format(Mid(rg.Value, 7, 8), "@@@@年@@月@@日")

'计算年龄

'判断月份

If Mid(rg.Value, 11, 2) > Format(Month(Now), "00") Then

'月份大的,也就是还没到月份则年份差值减去一天

Range("d" & i) = DateDiff("yyyy", Range("c" & i), Date) - 1

ElseIf Mid(rg.Value, 11, 2) < Format(Month(Now), "00") Then

'月份小的,也就是已过月份则为年份差值

Range("d" & i) = DateDiff("yyyy", Range("c" & i), Date)

Else

'月份相等的,在比较日期

If Mid(rg.Value, 13, 2) >= Format(Day(Now), "00") Then

'如果日期大的或者当天,也就是还没过生日日期,则年份差减去1天

Range("d" & i) = DateDiff("yyyy", Range("c" & i), Date) - 1

Else

'如果日期小的,说明生日已过,则为年份差值

Range("d" & i) = DateDiff("yyyy", Range("c" & i), Date)

End If

End If

Next

End Sub

3.新建【解析】按钮并绑定宏sfz

4.点击【解析】按钮看看执行效果

瞬间完美解析,厉害吧!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
来看看excel VBA中怎么表示单元格的
疑难53 如何提取身份证号码中的出生日期并计算年龄
如何优化EXCEL vba代码?
Excel VBA5 Range对象
EXCEL中身份证号提取转出生日期
如何用excel公式快速提取身份证的出生日期
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服