我们的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.点击【解析】按钮看看执行效果 瞬间完美解析,厉害吧! |
|