提取身份证的性别、出生年月日的VBA

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

提取身份证的出生年月日的VBA

方法一:使用VBA建立自定义函数

在EXCEL中建立模块,输入下列代码,则在单元格中就可以使用自定义函数XB(),则就可以根据身份份号码得出性别,使用自定义函数CS(),则就可以根据身份份号码得出出生日期。

'根据身份证号码求出生日期与性别

Function xb(Number)

If Len(Number) = 15 Then

se = Val(Right(Number, 1))

Select Case se

Case 0, 2, 4, 6, 8

xb = "女"

Case 1, 3, 5, 7, 9

xb = "男"

End Select

End If

If Len(Number) = 18 Then

se = Val(Mid(Number, 17, 1))

Select Case se

Case 0, 2, 4, 6, 8

xb = "女"

Case 1, 3, 5, 7, 9

xb = "男"

End Select

End If

End Function

Function cs(Number) As Date

If Len(Number) = 15 Then cs = "19" + Mid(Number, 7, 2) + "-" + Mid(Number, 9, 2) + "-" + Mid(Number, 11, 2)

If Len(Number) = 18 Then cs = Mid(Number, 7, 4) + "-" + Mid(Number, 11, 2) + "-" + Mid(Number, 13, 2)

End Function

方法二:使用函数

=IF(LEN(C2)=15,concatenate("19",MID(C2,7,2),"-",MID(C2,9,2),"-",MID(C 2,11,2)),if(len(c2)<>18,"身份证错误",concatenate(MID(C2,7,4),"-",MID(C2,11,2),"-",MID(C2,13,2)))

=IF(LEN(C2)=15,"19"&MID(C2,7,2)&"-"&MID(C2,9,2)&"-"&MID(C2,11,2),I F(LEN(C2)<>18,"身份证错误",MID(C2,7,4)&"-"&MID(C2,11,2)&"-"&MID(C2,13,2)))

“性别”的方法与出生年月大同小异。

=IF(LEN(C2)=15,IF(MOD(MID(C2,15,1),2)<>0,"男","女"),IF(LEN(C2)=18,IF(MOD(MID(C2,17,1),2)<>0,"男","女"),""))

=IF(LEN(C2)=15,IF(MOD(VALUE(RIGHT(C2,3)),2)=0,"女","男"),IF(LEN(C2)=18,IF(MOD(VALUE(MID(C2,15,3)),2)=0,"女","男"),""))

说明:函数concatenater()的功能:

将两个或多个文本字符串合并为一个文本字符串。

语法:CONCATENATE (text1,text2,...)

Text1, text2, ... 为2 到255 个将要合并成单个文本项的文本项。

这些文本项可以为文本字符串、数字或对单个单元格的引用。

注解:您也可使用连接符号(&) 计算运算符代替CONCATENATE 函数来连接文本项。例如=A1&B1 与=CONCATENATE(A1,B1) 返回相同的值。

相关文档
最新文档