用VBA验证身份证号码的正确性.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用VBA验证身份证号码的正确性

图 1 程序界面 编程语言 PROGRAM LANGUAGE 用 VBA 验证身份证号码的正确性 洪成波 张贻忠 摘 要: 否合法、 关键词: 用 Excel VBA 编写一段程序, 来验证身份证号码位数是否为 18 位 (二代要求)、 字符是 号码是否正确, 从而达到身份证号码自动验证, 去掉打印核对环节, 提高工作效率。 身份证号码; Excel VBA; 正确性。 Y: 0 1 2 3 4 5 6 7 8 9 10 (共 11 个数字) 对应的校验码为: 1 0 X 9 8 7 6 5 4 3 2 (共 11 个数字) 根据以上规则, 就可以编写一个程序来验证身份证号码是 否正确了。 身份证号码规则 号码的结构 公民身份号码是特征组合码, 由十七位数字本体码和一位 1 1.1 校验码组成。 排列顺序从左至右依次为: 2 设计思路 在 Excel 中只用一个工作表录入个人信息, 编写一个验证 身份证号码位数是否为 18 位 , 验证组成字符是否合法有效 (0、 1、 2、 3、 4、 5、 6、 7、 8、 9、 X), 验证号码是否正确的 程序, 并通过自定义下拉菜单 “验证身份证号” 完成验证。 地 址 码 (1~6 位 ) : 表示编码对象常住户口所在县 ( 市 、 旗、 区) 的行政区划代码, 按 GB/T2260 的规定执行。 出 生 日 期 码 ( 7 ~14 位 ) : 表示编码对象出生的年 、 月 、 日, 按 GB/T7408 的规定执行, 年、 月、 日代码之间不用分隔 符。 顺序码 (15~17 位) : 表示在同一地址码所标识的区域 范 制作方法 3 围内, 对同年、 同月、 同日出生的人编定的顺序号, 顺序码的 奇数分配给男性, 偶数分配给女性。 校验码 (第 18 位)。 1.2 校验码如何得到 (1) 十七位数字本体码乘以加权求和 (如表 1 所示)。 表 1 身份证号的位权值 (1) 新建 Excel 文件, 将 sheet1 工作表重命名为 “验证身 份证号码的正确性”, 删除 sheet2、 sheet3 工作表。 (2) 录入 (或导入) 待验证的有身份证号码的信息。 (3) 如果是录入信息 , 由于二代身份证号码为 18 位, 超 出了 11 位 (常规单元格格式会自动将超过 11 位的数字转化为 科学技术), 因此录入前必须将整个工作表单元格数据类型设 置为文本型, 之后在录入。 录入时第 1 行作为标题行, 输入字 段名, 以下各行录入信息记录。 录入结束后, 为了操作上的需 要, 可冻结第 1 行 (如选定 E2 后选定冻结窗口), 给标题行填 充单元格底色 (如茶色), 给有记录的单元格添加框线 , 设置 字体、 字号、 字色等。 如果是导入信息 , 以上过程自动完成 , 如图 1 所示。 公式为: S = ∑ (sum (Ai * Wi)) i = 1,…,17 Ai:表示第 i 位置上的身份证号码数字值 (共 17 个) Wi: 表 示 第 i 位 置 上 的 加 权 因 子: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 (共 17 个) (2) 计算余数。 Y = S mod 11 (对求和结果除以 11 求余数) (3) 通过余数得到对应的校验码, 如表 2 所示。 表 2 校验码对照表 余数 Y 0 1 2 3 4 5 6 7 8 9 10 校验码 1 0 X 9 8 7 6 5 4 3 2 位置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 和 加权 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 举例 1 3 0 1 0 2 1 9 6 3 0 7 0 4 0 6 5 乘积 7 27 0 5 0 8 2 9 36 9 0 63 0 20 0 24 10 220 图 2 录制宏 图 3 程序结构 (4) 通过录制宏插入 模 块 , 确 定 宏 名 称 , 式, 然后在该模块内编写代码, 如图 2 所示。 并 添 加 快 捷 方 CommandBars(1).Controls(【导入信息】).Delete CommandBars(1).Controls(【验证身份证号】).Delete CommandBars(1).Controls(【关闭程序】).Delete 利用 ID 属性查找帮助菜单 Set HelpMenu = CommandBars(1).FindControl(ID:=30010) 如果该菜单不存在,

文档评论(0)

pangzilva + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档