ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 20947|回复: 30

[求助] 如何实现身份证号码即输即验证(验证身份证是否有效)?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2010-12-29 11:58 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
对于身份证问题,从论坛中查找了不少高手的贴子,学习了一些做法。现在想请教高手们这样一个应用:在单元格里输入一个18位身份证号,立刻进行验证是否是一个有效的身份证(符合身份证的编码特征)。

具体要求:

1、身份证号码为18位。
2、前17位为数字,最后一位符合身份证校验规则。
3、身份证号里的出生日期为有效的日期,并且限定在1960-1-1至2000-12-31。
4、前6位在提供的地区代码中(“编码表”)。
5、在“应用”表中的单元格中输入身份证号,立即进行以上验证。如果不符合以上条件,弹出对话框,提示相应错误(不在其他单元格中显示验证信息),焦点依然在该单元格中,要求重新输入。忽略空值。

实现这样的功能,该如何做呢?请教高手。

ID.rar (96.93 KB, 下载次数: 479)

[ 本帖最后由 tocsin 于 2010-12-29 18:20 编辑 ]

TA的精华主题

TA的得分主题

发表于 2010-12-29 12:16 | 显示全部楼层
原帖由 tocsin 于 2010-12-29 11:58 发表
对于身份证问题,从论坛中查找了不少高手的贴子,学习了一些做法。现在想请教高手们一个问题:在单元格里输入一个身份证号,立刻进行验证,如果有误,弹出对话框,提示错误。关闭对话框后,焦点仍然在当前单元格中。 ...

建议楼主上传附件,并在附件中做出自己想要的效果。然后大家才好帮你!

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-12-29 12:21 | 显示全部楼层
就是想在某一单元格里,输入一个身份证号,立即进行验证,如果有误,弹出对话框加以提示

TA的精华主题

TA的得分主题

发表于 2010-12-29 12:22 | 显示全部楼层
数据有效性可以么?没有试验,焦点应该还在当前单元格

TA的精华主题

TA的得分主题

发表于 2010-12-29 12:23 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
原帖由 tocsin 于 2010-12-29 12:21 发表
就是想在某一单元格里,输入一个身份证号,立即进行验证,如果有误,弹出对话框加以提示


身份证里有很多的信息,您要验证什么!

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-12-29 12:27 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
主要是验证18位身份证号是否是一个有效的身份证号。无论是有效性还是VBA,都可以,能实现即输即验证。

TA的精华主题

TA的得分主题

发表于 2010-12-29 12:40 | 显示全部楼层
何为有效性?指的是真实数据还是只要符合身份证的特征?

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-12-29 12:42 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-12-29 12:46 | 显示全部楼层
请列举出您认为的需要判断的身份证特征是什么,然后把基础数据找到,举个例子,你想确定前两位或前三位是真正的地区代码而不是随意的数字,那么你需要提供全部的地区代码。如果你想判断出生年月不是随意的数字,那么你需要提出需要判断的年份的上下限,比如出生年月从1900年1月1日到2010年12月31日等等。如果有其他的要求也许要提出来,否则大家做出一个来你就会说不对,然后再提出其他的需求。

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-12-29 13:20 | 显示全部楼层
不好意思,我没有表述清楚。我的需求是:

1、身份证号码为18位。
2、前17位为数字,最后一位符合身份证校验规则。
3、身份证号里的出生日期为有效的日期,并且限定在1960-1-1至2000-12-31。
4、前6位在提供的地区代码中(“编码表”)。
5、在“应用”表中的单元格中输入身份证号,立即进行以上验证,如果不符合以上条件,弹出对话框,提示相应错误,焦点依然在该单元格中,要求重新输入。忽略空值。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-28 19:34 , Processed in 0.031574 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表