excel身份证验证(附带防止粘贴导致校验失效的函数)
一、检验函数
=IF(LEN(A1)=18,MID("10X98765432",MOD(SUMPRODUCT(MID(A1,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)=RIGHT(A1))----18位校验
二、防止粘贴导致校验失效的函数
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Dim c As String
For Each rng In Target
If Not rng.Validation.Value Then
Application.Undo
Dim msg As String
msg = "粘贴的数据不符合校验规则:位置在第" & rng.Row & "行,第" & getColumnName(rng.column) & "列,请仔细检查"
MsgBox prompt:=msg, Title:="输入提示"
Exit For
End If
Next
End Sub Private Function getColumnName(column As Integer) As String
Dim alphabet(26) As String
alphabet(0) = "A"
alphabet(1) = "B"
alphabet(2) = "C"
alphabet(3) = "D"
alphabet(4) = "E"
alphabet(5) = "F"
alphabet(6) = "G"
alphabet(7) = "H"
alphabet(8) = "I"
alphabet(9) = "J"
alphabet(10) = "K"
alphabet(11) = "L"
alphabet(12) = "M"
alphabet(13) = "N"
alphabet(14) = "O"
alphabet(15) = "P"
alphabet(16) = "Q"
alphabet(17) = "R"
alphabet(18) = "S"
alphabet(19) = "T"
alphabet(20) = "U"
alphabet(21) = "V"
alphabet(22) = "W"
alphabet(23) = "X"
alphabet(24) = "Y"
alphabet(25) = "Z" If (column < 27) Then
getColumnName = alphabet(column - 1)
Else
Dim i, j As Integer
i = column \ 26
j = column Mod 26
If (i < 26) Then
getColumnName = alphabet(i - 1) & alphabet(j - 1)
Else
getColumnName = column
End If End If End Function
excel身份证验证(附带防止粘贴导致校验失效的函数)的更多相关文章
- Excel身份证验证,身份证校验公式
=IF(LEN(Q4)=0,"空",IF(LEN(Q4)=15,"老号",IF(LEN(Q4)<>18,"位数不对",IF(CH ...
- java身份证验证
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; impor ...
- jQuery身份证验证插件
jQuery身份证验证插件 /*! * jQuery isIDCard Plugin v1.0.0 * http://www.cnblogs.com/cssfirefly/p/5629561.html ...
- java对身份证验证及正则表达式解析
原文地址:http://www.cnblogs.com/zhongshengzhen/ java对身份证验证及正则表达式解析 package service; import java.text.Par ...
- C#实现中国身份证验证问题
C#中国身份证验证,包括省份验证和校验码验证,符合GB11643-1999标准... 今天写的 C#中国身份证验证,包括省份验证和校验码验证,符合GB11643-1999标准... 理论部分: 1 ...
- 【NumberValidators】大陆身份证验证
需要说明的是这里的大陆身份证识别并不是公安局联网的识别,而是按国标GB 11643进行的验证,所以其验证结果只能说符合国标规范,但不能保证该身份证一定真实存在,如果你实际需求是希望身份证一定真实存在, ...
- .NET身份证验证
身份证号码编码规则及校验位校验算法 算法地址:http://jingyan.baidu.com/article/7f41ececff944a593d095c8c.html 简单验证长度 /// < ...
- Java基础之身份证验证
//简约版package test; import java.util.Scanner; public class ID { /** * 匹配算法 : 1) 得到17位身份证号码与下面给出的17位 2 ...
- HDU 17新生赛 身份证验证【模拟】
身份证验证 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
随机推荐
- SQL Server存储过程邮件发送以表格方式发送
一.收到邮件显示:示例 二.存储过程代码部分: BEGIN SET NOCOUNT ON; --初始化 Declare @MailTo nvarchar(max) Declare @MailCc nv ...
- winfrom SVG转Imge
svg矢量图的使用,将svg矢量图展示在pictureBox上,拖动可以应用到其他设计软件上,复杂一点,中间涉及到SVG的下载 以及 SVG转化为 图片等操作 效果图如下: 源码下载地址: htt ...
- SpringBoot2.0之五 优雅整合SpringBoot2.0+MyBatis+druid+PageHelper
上篇文章我们介绍了SpringBoot和MyBatis的整合,可以说非常简单快捷的就搭建了一个web项目,但是在一个真正的企业级项目中,可能我们还需要更多的更加完善的框架才能开始真正的开发,比如连接池 ...
- vue 基础知识
1. v-if 的使用: 假如后端传过来的数据,1 表示 “已完成”, 0表示 “未完成”, 那么如何根据 1.0显示出对应的表示信息呢? <p><span v-if="d ...
- 二、使用docker-compose搭建AspNetCore开发环境
1 使用docker-compose搭建开发环境 我们的目标很简单:使用docker-compose把若干个docker容器组合起来就成了. 首先使用Nginx代理所有的Web程序,这样只需要在主机上 ...
- 微信公众号支付提示mch_id参数格式错误
背景: .Net MVC微信公众号支付功能 问题: 今天在做网站微信支付的时候,一直提示“微信公众号支付提示mch_id参数格式错误” ! 解决方法: 其实这个问题一般并不是说你配置有错,首先它提示你 ...
- Identity Server 4 预备知识 -- OpenID Connect 简介
我之前的文章简单的介绍了OAuth 2.0 (在这里: https://www.cnblogs.com/cgzl/p/9221488.html), 还不是很全. 这篇文章我要介绍一下 OpenID C ...
- WindowUtils【窗口工具类】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 判断当前界面是横屏还是竖屏: 获取当前界面方向. 效果图 代码分析 isLandscape(Context context): ...
- springboot~maven制作底层公用库
把一些公用方法,类型抽象到一个项目里,让其它项目依赖它,这种设计是一种解耦的体现,其实像springboot就是我们的一种依赖,他里面有很多子模块,用到哪个就添加哪个依赖即可,像redis,mongo ...
- 探索js原型链和vue构造函数中的奥妙
这篇文章首先会讲到原型链以及原型链的一些概念,然后会通过分析vue的源码,来看一下vue的构造函数是如何被创建的,now we go! 一.什么是原型链? 简单回顾下构造函数,原型和实例的关系: ...