打开APP
userphoto
未登录

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

开通VIP
身份证校验VBA宏


Function IDCheck(e)
    IDCheck = True
    arrVerifyCode = Split("1,0,x,9,8,7,6,5,4,3,2", ",")
    Wi = Split("7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2", ",")
    Checker = Split("1,9,8,7,6,5,4,3,2,1,1", ",")
    
    If Len(e) < 15 Or Len(e) = 16 Or Len(e) = 17 Or Len(e) > 18 Then
        'IDCheck= "身份证号共有 15 码或18位"
        IDCheck = False
        Exit Function
    End If
    
    Dim Ai
    
    '取身份证前17位
    If Len(e) = 18 Then
        Ai = Mid(e, 1, 17)
    ElseIf Len(e) = 15 Then
        Ai = e
        Ai = Left(Ai, 6) & "19" & Mid(Ai, 7, 9) '转换成17位
    End If
    
    If Not IsNumeric(Ai) Then
        'IDCheck= "身份证除最后一位外,必须为数字!"
        IDCheck = False
        Exit Function
    End If
    
    Dim strYear, strMonth, strDay
    strYear = CInt(Mid(Ai, 7, 4))
    strMonth = CInt(Mid(Ai, 11, 2))
    strDay = CInt(Mid(Ai, 13, 2))
    BirthDay = Trim(strYear) + "-" + Trim(strMonth) + "-" + Trim(strDay)
    
    If IsDate(BirthDay) Then
        If DateDiff("yyyy", Now, BirthDay) < -140 Or CDate(BirthDay) > Date Then
        'IDCheck= "身份证输入错误!"
        IDCheck = False
        Exit Function
    End If
    
    If strMonth > 12 Or strDay > 31 Then
        IDCheck = False
        'IDCheck= "身份证输入错误!"
        Exit Function
    End If
    Else
        'IDCheck= "身份证输入错误!"
        IDCheck = False
        Exit Function
    End If
    
    Dim i, TotalmulAiWi
    
    '十七位数字本体码加权求和
    For i = 0 To 16
        TotalmulAiWi = TotalmulAiWi + CInt(Mid(Ai, i + 1, 1)) * Wi(i)
    Next
    
    Dim modValue
    modValue = TotalmulAiWi Mod 11 '计算模
    
    Dim strVerifyCode
    strVerifyCode = arrVerifyCode(modValue) '通过模得到对应的校验码
    Ai = Ai & strVerifyCode
    IDCheck = Ai
    
    If Len(e) = 18 And e <> Ai Then
        'IDCheck= "身份证号码输入错误!"
        IDCheck = "False" & Ai
        Exit Function
    End If
End Function

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
验证身份证号是否正确的代码
VBA身体证检验,收好了!
身份证号码校验也可以利用excel函数公式完成
Excel表中身份证号码提取出生年月,性别,年龄的使用技巧_电脑知识交流:
EXCEL中利用身份证号计算年龄、出生年月、性别
用ASP实现身份证验证
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服