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 ...
随机推荐
- 白话kubernetes的十万个为什么(持续更新中...) - kubernetes
Kubernetes简称? 答:k8s或kube. Kubernetes是什么? 答:由Google开发的一个强大的平台,可以在集群环境中管理容器化应用程序.本质上是一种特殊的数据库,里面存储的是能够 ...
- 深入理解 call,apply 和 bind
在JavaScript 中,call.apply 和 bind 是 Function 对象自带的三个方法,这三个方法的主要作用是改变函数中的 this 指向,从而可以达到`接花移木`的效果.本文将对这 ...
- JDK中的Atomic包中的类及使用
引言 Java从JDK1.5开始提供了java.util.concurrent.atomic包,方便程序员在多线程环境下,无锁的进行原子操作.原子变量的底层使用了处理器提供的原子指令,但是不同的CPU ...
- 自学python的日记分享
2019.4.22登记 课堂笔记 2019.4.8 在windows环境下,用python写出第一个程序“hello world” print("Hello World!!!") ...
- 用pyinstaller打包python程序,解决打包时的错误:Cannot find existing PyQt5 plugin directories
解决方法就是用everything搜索PyQt5,找到 /Library/plugins路径下的PyQt5文件夹,将里面的dll动态库pyqt5qmlplugin.dll复制出来 按照错误提示的路径, ...
- 机器学习算法GBDT的面试要点总结-上篇
1.简介 gbdt全称梯度下降树,在传统机器学习算法里面是对真实分布拟合的最好的几种算法之一,在前几年深度学习还没有大行其道之前,gbdt在各种竞赛是大放异彩.原因大概有几个,一是效果确实挺不错.二是 ...
- PopupWindowMenuUtil【popupwindow样式菜单项列表】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 实现PopupWindow样式的Menu菜单. 效果图 代码分析 使用PopupWindow实现. 列表使用的是Recyclervi ...
- 《HelloGitHub》第 29 期
公告 月刊现已支持 RSS 订阅 <HelloGitHub>第 29 期 兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣! 简介 分享 GitHub 上有趣.入门级的开源项目. ...
- 带着新人简单看看servlet到springmvc
好久都没有写博客了,不是因为自己懒了,而是总感觉自己知道的只是太少了,每次想写博客的时候都不知道怎么下手,不过最近看到一篇博客说的是springmvc,给了我比较大的兴趣,感觉一下子对整个spring ...
- 多机同步管理hexo博客
转载自:https://www.zhihu.com/question/21193762/answer/79109280 一.关于搭建的流程 创建仓库,<your github username& ...