输入居民身份证号码时要进行核对,很费时间,用VBA几行代码就可以完成输入是否正确的验证,会节省不少的时间,在结合下面求性别的函数,输入效率更会有极大的提设
Public Function IDcheck(ID As String) As Boolean
'**************************************************
'* 身份证号码校验函数
'* BH4BIN 2023/1/29
'**************************************************
Dim s As Long
Dim i As Long
Dim z As String
Dim e As String
s = 0
If Len(ID) = 18 Then
For i = 1 To 17
s = s + Val(Mid(ID, 18 - i, 1)) * (2 ^ i Mod 11)
Next
e = Mid("10X98765432", (s Mod 11) + 1, 1) '生成校验码
z = UCase(Right(ID, 1))
If z = e Then '校验码对比
IDcheck = True
Else
IDcheck = False
' MsgBox prompt:="输入的身份证号码有误,请仔细检查!!!", Title:="提示"
End If
Else
IDcheck = False
End If
End Function
Public Function Sex(ID As String) As String
'**************************************************
'* 根据身份证号码,求性别的函数,先验证号码是否正确
'* BH4BIN 2023/1/29
'**************************************************
If IDcheck(ID) Then
If Mid(ID, 17, 1) Mod 2 Then
Sex = "男"
Else
Sex = "女"
End If
Else
Sex = "身份证号码有误,请仔细检查!!"
End If
End Function