纲举目张

  • 说明
  • 代码code
  • 使用方法

说明

在处理工作数据时经常会有身份证号,而身份证号作为唯一能够精确标记某个人的关键数据,所以身份证号的正确与否就非常关键,而一般身份证号都是手工录入为主,大多数人也不是银行员工,没有刻苦的联系过数字录入,难免会出现错误,那么这个时候能够帮助我们校验身份证号录入是否正确的函数就相当重要了。
根据百度百科中的介绍:

身份证号码中的校验码是身份证号码的最后一位,是根据GB 11643-1999中有关公民身份号码的规定,根据精密的计算公式计算出来的,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码,最后一位是数字校验码。

代码code

Sub 引用函数的过程()If CheckID("11012319001231001X") = True ThenMsgBox "身份证号正确"ElseMsgBox "错误请检查"End If
End SubFunction CheckID(ID As String) As BooleanID = Trim(ID)Select Case Len(ID)Case 15CheckID = False '标明这是15位的身份证号Exit FunctionCase 18 '不作任何处理,以便进入以后的校验语句Case ElseCheckID = False '表明是其他类型的身份证或者是录入错误Exit FunctionEnd SelectDim IDSum As Integer '定义总和Dim IDSingl As Integer '定义单个数Dim IDMod As Integer '定义余数Dim IDFinal As String  '定义计算出的校验位IDSum = 0 '为总和赋常数值0For i = 1 To 17IDSingl = Mid(ID, i, 1) '先取单个数码Select Case iCase 1, 11 '系数为 7IDSum = IDSum + IDSingl * 7Case 2, 12 '系数为 9IDSum = IDSum + IDSingl * 9Case 3, 13 '系数为 10IDSum = IDSum + IDSingl * 10Case 4, 14 '系数为 5IDSum = IDSum + IDSingl * 5Case 5, 15 '系数为 8IDSum = IDSum + IDSingl * 8Case 6, 16 '系数为 4IDSum = IDSum + IDSingl * 4Case 7, 17 '系数为 2IDSum = IDSum + IDSingl * 2Case 8 '系数为 1IDSum = IDSum + IDSingl * 1Case 9 '系数为 6IDSum = IDSum + IDSingl * 6Case 10 '系数为 3IDSum = IDSum + IDSingl * 3End SelectNextIDMod = IDSum Mod 11 '总和除以11取余数Select Case IDMod '根据余数得出相应的校验位Case 0IDFinal = 1Case 1IDFinal = 0Case 2IDFinal = "X"Case 3IDFinal = 9Case 4IDFinal = 8Case 5IDFinal = 7Case 6IDFinal = 6Case 7IDFinal = 5Case 8IDFinal = 4Case 9IDFinal = 3Case 10IDFinal = 2End SelectIf IDFinal = Right(ID, 1) ThenCheckID = True '校验位正确ElseCheckID = False '校验位错误End If
End Function

使用方法

只要运行“引用函数的过程”即可,该过程就引用了CheckID函数并将身份号做为参数传入,当然本例运行的结果是“错误请检查”。

如有不知道如何使用或有其他问题请在评论区留言。

【Excel VBA】身份证号校验功能函数相关推荐

  1. C语言基础入门48篇_26_身份证号校验程序(以身份证的校验方式是实例加深对数组及函数封装的理解、字符-‘0‘得到字符对应的int类型数字)

    本篇根据以二代身份证的校验方式是实例加深对数组及函数封装的理解 1. 第二代身份证号的组成 第二代身份证号为18位,各位数字对应了不同的信息(以下顺序从左往右): AABBCCYYYYMMDDXXXV ...

  2. 使用 python 进行身份证号校验

    使用 python 代码进行身份证号校验 先说,还有很多可以优化的地方. 1.比如加入15位身份证号的校验,嗯哼,15位的好像没有校验,那就只能提取个出生年月日啥的了. 2.比如判断加入地址数据库,增 ...

  3. Navicat for MySQL 导出 Excel 时身份证号惨遭科学计数

    Navicat for MySQL 导出 Excel 时身份证号惨遭科学计数 身份证号前加单引号 参考资料 身份证号前加单引号 身份证号直接导出会丢失精度,只有前15位,后三位直接变成 0 了. 依据 ...

  4. Excel根据身份证号自动识别性别

    今天要和大家分享的是:Excel根据身份证号自动识别性别,先看动图演示,注意这里的身份证号为虚拟信息 1.首先打开表格,看到身份证号 2.然后选择身份证号 3.选择diy工具箱 4.选择身份证按钮 5 ...

  5. Excel根据身份证号批量提取出生日期

    今天要和大家分享的是:Excel根据身份证号批量提取出生日期,先看动图演示,注意这里的身份证号为虚拟信息 1.首先打开表格 2.然后选中身份证数据 3.选择diy工具箱 4.选择身份证按钮 5.选择提 ...

  6. 用Python进行身份证号校验

    在日常应用中,经常需要输入身份证号,因为号码较长容易录错,因此需要进行实时校验,以尽可能保证输入正确.以下以Python为例,浅聊身份证号码校验的方法. 首先我们需要了解身份证号各个号段的意义.身份证 ...

  7. Java身份证号校验

    面向百度编程 package com.sinosoft.lf.util.common;import java.text.SimpleDateFormat; import java.util.Date; ...

  8. Excel根据身份证号批量计算年龄+

    今天要和大家分享的是:Excel根据身份证号批量计算年龄,先看下面的动图演示 1.首先打开表格 2.选中数据区域 3.然后选择diy工具箱 4.选择身份证选项 5.选择提取年龄按钮 6.弹出对话框单击 ...

  9. 最牛js身份证号校验方法

    最牛js身份证号校验方法: function IdCodeValid(code){ //身份证号合法性验证 //支持15位和18位身份证号 //支持地址编码.出生日期.校验位验证 var city={ ...

最新文章

  1. MicroSoft的Office使用攻略
  2. cv2.fillConvexPoly填充多边形
  3. kafka系列三、Kafka三款监控工具比较
  4. 多线程编程2 - NSOperation
  5. odoo pivot中去掉求和_一文读懂深度学习中的卷积运算与图像处理
  6. NSMutableArray 排序
  7. php fast cgi nginx,通过fast-cgi连接php-fpm和nginx之间的连接是持...
  8. 话费直充/三网直冲/联通直充/电信直充/移动直充/系统源码
  9. redis sds的申请扩容源码
  10. psn请验证您不是机器人_创客机器人的课程简单易学吗
  11. 公钥与私钥,数字签名
  12. 使用eventfd唤醒阻塞在select、poll、epoll的IO复用
  13. windows下OpenGL开发前准备
  14. 学ps还是html,photoshop哪个版本好用?初学PS用哪个版本好?
  15. springtask Cron表达式与fixedDelay的区别
  16. termux安装linux 并开机自动运行命令,自动进入系统
  17. python123回文素数_平方回文素数
  18. 电压过零光隔离TRIAC驱动器应用
  19. inventor2014出现inventor应用程序错误0xc0000142
  20. psnbsp;盖印图层

热门文章

  1. 2022 中秋节,晒下新浪的月饼,另外留言送红包
  2. 吐槽和卧槽以及跳槽的含义,这个你应该知道
  3. 机器人辅助符文天赋符文天赋_2020机器人符文出装 s10机器人辅助出装天赋推荐...
  4. 搭建svn服务器并自动更新到web服务器
  5. scrapy mysql 词云_利用Scrapy爬取姓名大全作词云分析
  6. 联想笔记本出厂预装Win8改装Win7的操作步骤及常见问题(GPT分区表)
  7. [转载]ffmpeg的使用
  8. 磁盘清理工具:DaisyDisk for Mac 4.20.3
  9. 买电脑需要考虑的电脑配置
  10. 专业显卡测试软件 spec,跑分软件终于追上锐龙 Threadripper 3990X,SPEC 性能评分提升 200%...