Excel VBA学习之身份证号校检自定义函数
Excel VBA学习之身份证号校检自定义函数
【问题提出】上次学习了一个用Excel函数的方法来解决这个问题,但是函数太长了,有时会忘记:
=IF(LEN($B2)=18,IF(MID("10X98765432",MOD(SUMPRODUCT(VALUE(MID($B2,ROW($1:$17),1)),说明!$B$2:$B$18),11)+1,1)=RIGHT($B2,1),"合法","不合法"),"长度错误")
能不能简单一点,工作时不用那么辛苦的输入这个函数
【知识学习】
自定义函数的基本语法:
我们在Excel中使用的内置函数,有的没参数,比如Rand函数,有的有参数,比如Vlookup,参数还好几个,有些参数是区域,有些是数字。
我们今天就从最基本的开始,先来学习下定义一个没有参数和一个只有一个参数的函数,通过最基本的例子来掌握自定义函数的基本语法结构。
自定义函数的语法结构:
Function 函数名(参数1,参数2,……,参数n)
代码
函数名 = 代码执行的结果
End Function
语法很简单,看来难在了怎么得到结果的这段代码上。
好了,下面我们就开始自定义一个没有参数的函数吧。
【写一个自定义函数用于检测身份证号是否正确】
''====用于校检身份证号是否正确的自定义函数=========
Function ID(n)
Dim h, s, t, z As Integer
wi = Array("7", "9", "10", "5", "8", "4", "2", "1", "6", "3", "7", "9", "10", "5", "8", "4", "2")
y = Array("1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2")
If Len(n) = 18 Then
For h = 0 To 16
r = Mid(n, h + 1, 1)
If IsNumeric(r) = False Then
ID = "第 " & h + 1 & " 位为非法字符"
Exit Function
End If
s = s + r * wi(h)
Next h
t = s Mod 11
If UCase(Mid(n, 18)) = y(t) Then
ID = "身份证号码正确"
Else
ID = "身份证号码不正确"
End If
Else
ID = "位数少于18位"
End If
End Function
【使用方法】
【测试成功】
=====The End=====
相关文章
- 将Excel转换为word_excel如何将横排变成竖排
- 导出的Excel名字乱码_恢复的excel文件乱码
- Excel VBA宏编程入门(五)——用户交互[通俗易懂]
- Excel中VBA编程学习笔记(一)「建议收藏」
- 轻松解析excel文件 —-利用MFC读取excel文件
- 如何利用 pandas 批量合并 Excel?
- Excel函数之COUNTIFS
- React + Springboot + Quartz,从0实现Excel报表自动化
- Excel函数之数字与文字分离
- Excel Power Query学习:如何合并两个Excel工作簿
- Excel中如何设置随机密码
- Java中注解学习系列教程-4 使用自定义注解实现excel导出
- java -POI的基本操作Excel
- 微软又给谷歌「双重暴击」,ChatGPT或将加入Word、PPT和Excel!
- POI结合bootstrap-fileinput上传Excel内容到数据库
- 导出Excel数据详解编程语言
- 操作excel展示Linux下Poi妙用:操作Excel(linux下poi)
- 批量转换到csvLinux下Excel批量转换为CSV格式的方法(linux下excel)
- 轻松实现Excel导入MySQL数据库(excel导入mysql数据库)
- 导入Excel数据到Oracle数据库(将excel导入oracle数据库)
- 数据库的比较深入比较:Excel与MySQL的数据库技术优劣(excel与mysql)
- 利用Excel快速连接MySQL数据库(excel连接mysql)
- 快速导入:从SQL Server到Excel的简单数据转移(sqlserver导入数据)
- MySQL读取Excel文件的简单方法(mysql读取excel)
- mssql数据快速转换称Excel格式(mssql转excel)
- 利用Excel快速导入Oracle数据库(excel导oracle)
- Excel数据快速导入Oracle数据库(excel入oracle)
- 把excel表格里的数据导入sql数据库的两种方法
- 使用工具plsqldev将Excel导入Oracle数据库