分类: 知海拾贝 |
我们经常在Excel中要处理身份证号码信息,如何判断身份证号码的真伪呢?对于18位的身份证号码,由于有校验位的存在,因此可以利用校验位判断一个号码是否合法——即是否符合身份证号码的编码规则。
VBA可以很简单地帮助我们实现这个目的,首先在Excel中添加宏代码如下:
Public Function CheckID(ByVal ID18 As String) As String
End Function
这样我们就有了CheckID这个函数可以调用。在Excel表单中,假设身份证号码放在A1单元格,则可以使用公式:=if(MID(A1,18,1)=checkID(A1),"ok","Err")来确认该18位身份证号码是否合法,考虑到15位的情况,可以写得稍微复杂一点以增强容错性:
=IF(LEN(A1)=15,"---",IF(LEN(A1)=18,IF(MID(A1,18,1)=checkID(A1),"ok","Err"),"Err"))
这样,如果是15位身份证号码,则显示“---”,如果是18位身份证号码,并且符合校验规律,则显示“ok”,其他情况下,显示“Err”,是不是很简单?
PS. 如何添加宏代码——方便VBA的菜鸟:
非常简单:
第一步:选择菜单“工具”-“宏”-“Visual Basic编辑器”;
第二步:在“Microsoft Excel对象”上点右键,选择“插入”-“模块”;
第三步:双击新插入的“模块”,在右边的编辑窗口中拷贝上面的宏代码即可。