| 
                                    
                                    
                                    
                                    
                                    
                                    
                                    
                                     
                                        
                                     
                                    
                                        
                                        - 博士后
 
                                        
                                        - 728264
 
                                        - 3503
 
                                        - 18
 
                                        - 1900 朵
 
                                        - 27455 个
 
                                        - 1719 个
 
                                        - 82980
 
                                        - 2011-08-04
 
                                     
                                    
                                    
                                    
                                 | 
                                
                                    
                                        
                                            
                                                
                                                1#
                                                
                                            
                                        
                                        
                                            
                                                
                                                
                                                t
                                                T
                                             
                                            
                                            
                                            
                                                
                                                发表于 2022-10-18 02:41
                                            
                                                                                        
                                            | 
                                            
                                            
                                            |只看楼主
                                            
                                         
                                     
                                    
                                    
                
                
                
                
                    
                    
                    
                   
                    
                        
                        
                          身份证号码最后一位校验码计算方法:1、将身份证号码前17位数分别乘以不同的系数,从第1位到第17位的系数分别为7、9、10、5、8、4、2、1、6、3、7、9、10、5、8、4、2。 2、把身份证号码每位的乘积相加计算出总和。 3、用加出来的总和除以11,得到余数。 4、得到的余数可能为0、1、2、3、4、5、6、7、8、9、10,它们分别对应校验码1、0、X 、9、8、7、6、5、4、3、2。我们可以根据以上信息来编写函数用以提取身份证号码中的信息。注:本文中提取身份证信息的原理来源于网络,仅供交流学习及校验身份证号码信息,不提供自动生成身份证号码的代码。函数名称: 获取身份证号码校验码 参数定义:身份证号码前17位 字符串型:身份证号码中的前17位 返回值: 字符串型:身份证号码中第18位校验码 调用例子: TracePrint "身份证号码校验码:" & 获取身份证号码校验码("11000019491001321")'身份证号码校验码:9函数名称: 判断身份证号码是否正确 参数定义:身份证号码 字符串型:18位的身份证号码 返回值: 字符串型:身份证号码正确则返回 1,否则返回0 调用例子: TracePrint "身份证号码是否正确:" & 判断身份证号码是否正确("110000194910013219")'身份证号码是否正确:1函数名称: 获取身份证号码出生年月日 参数定义:身份证号码 字符串型:18位的身份证号码 返回值: 字符串型:身份证中的出生年月日,以"|"作为分割符,月和日中第1位若为"0",则舍弃,如"01"返回"1" 调用例子: TracePrint "身份证号码出生年月日:" & 获取身份证号码出生年月日("110000194910013219")'身份证号码出生年月日:1949|10|1函数名称: 获取身份证号码性别 参数定义:身份证号码 字符串型:18位的身份证号码 返回值: 字符串型:"男"或"女" 调用例子: TracePrint "身份证号码性别:" & 获取身份证号码性别("110000194910013219")'身份证号码性别:男函数名称: 获取身份证号码省份 参数定义:身份证号码 字符串型:18位的身份证号码 返回值: 字符串型:所在省份,比如"北京市"、"河北省"、"内蒙古自治区"、"台湾省"、"香港特别行政区"等 调用例子: TracePrint "身份证号码省份:" & 获取身份证号码省份("110000194910013219")'身份证号码省份:北京市注:若要获取具体的城市及区县,请自行搜索行政区代码进行编写。源码:- TracePrint "身份证号码校验码:" & 获取身份证号码校验码("11000019491001321")
  
- TracePrint "身份证号码是否正确:" & 判断身份证号码是否正确("110000194910013219")
  
- TracePrint "身份证号码出生年月日:" & 获取身份证号码出生年月日("110000194910013219")
  
- TracePrint "身份证号码性别:" & 获取身份证号码性别("110000194910013219")
  
- TracePrint "身份证号码省份:" & 获取身份证号码省份("110000194910013219")
  
- Function 获取身份证号码校验码(身份证号码前17位)
  
- 身份证号码前17位 = Left(身份证号码前17位, 17)
  
- If IsNumeric(身份证号码前17位) = false Then 
  
- 获取身份证号码校验码 = ""
  
- Exit Function 
  
- End If
  
- Dim i, 系数, 余数, 总和, 校验码
  
- 系数 = Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2)
  
- 校验码 = Array("1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2")
  
- 总和 = 0
  
- For i = 1 To 17
  
- 总和 = 总和 + 系数(i - 1) * CLng(Mid(身份证号码前17位, i, 1))
  
- Next
  
- 获取身份证号码校验码 = 校验码(总和 Mod 11)
  
- End Function
  
- Function 判断身份证号码是否正确(身份证号码)
  
- If Len(身份证号码) <> 18 Then 
  
- 判断身份证号码是否正确 = 0
  
- Exit Function 
  
- End If
  
- Dim 身份证号码前17位, 身份证号码末位
  
- 身份证号码前17位 = Left(身份证号码, 17)
  
- If IsNumeric(身份证号码前17位) = false Then 
  
- 判断身份证号码是否正确 = 0
  
- Exit Function 
  
- End If
  
- 身份证号码末位 = Right(身份证号码, 1)
  
- If IsNumeric(身份证号码末位) = false And 身份证号码末位 <> "X" Then 
  
- 判断身份证号码是否正确 = 0
  
- Exit Function 
  
- End If
  
- If 获取身份证号码校验码(身份证号码前17位) = 身份证号码末位 Then 
  
- 判断身份证号码是否正确 = 1
  
- Else 
  
- 判断身份证号码是否正确 = 0
  
- End If
  
- End Function
  
- Function 获取身份证号码出生年月日(身份证号码)
  
- Dim 年, 月, 日
  
- 年 = Mid(身份证号码, 7, 4)
  
- 月 = Mid(身份证号码, 11, 2)
  
- If Left(月, 1) = "0" Then 
  
- 月 = Right(月, 1)
  
- End If
  
- 日 = Mid(身份证号码, 13, 2)
  
- If Left(日, 1) = "0" Then 
  
- 日 = Right(日, 1)
  
- End If
  
- 获取身份证号码出生年月日 = 年 & "|" & 月 & "|" & 日
  
- End Function
  
- Function 获取身份证号码性别(身份证号码)
  
- Dim 身份证号码第17位
  
- 身份证号码第17位 = Mid(身份证号码, 17, 1)
  
- If (CLng(身份证号码第17位) Mod 2) = 0 Then 
  
- 获取身份证号码性别 = "女"
  
- Else 
  
- 获取身份证号码性别 = "男"
  
- End If
  
- End Function
  
- Function 获取身份证号码省份(身份证号码)
  
- Dim 身份证号码前两位
  
- 身份证号码前两位 = Mid(身份证号码, 1, 2)
  
- Select Case 身份证号码前两位
  
- Case "11"
  
- 获取身份证号码省份 = "北京市"
  
- Case "12"
  
- 获取身份证号码省份 = "天津市"
  
- Case "13"
  
- 获取身份证号码省份 = "河北省"
  
- Case "14"
  
- 获取身份证号码省份 = "山西省"
  
- Case "15"
  
- 获取身份证号码省份 = "内蒙古自治区"
  
- Case "21"
  
- 获取身份证号码省份 = "辽宁省"
  
- Case "22"
  
- 获取身份证号码省份 = "吉林省"
  
- Case "23"
  
- 获取身份证号码省份 = "黑龙江省"
  
- Case "31"
  
- 获取身份证号码省份 = "上海市"
  
- Case "32"
  
- 获取身份证号码省份 = "江苏省"
  
- Case "33"
  
- 获取身份证号码省份 = "浙江省"
  
- Case "34"
  
- 获取身份证号码省份 = "安徽省"
  
- Case "35"
  
- 获取身份证号码省份 = "福建省"
  
- Case "36"
  
- 获取身份证号码省份 = "江西省"
  
- Case "37"
  
- 获取身份证号码省份 = "山东省"
  
- Case "41"
  
- 获取身份证号码省份 = "河南省"
  
- Case "42"
  
- 获取身份证号码省份 = "湖北省"
  
- Case "43"
  
- 获取身份证号码省份 = "湖南省"
  
- Case "44"
  
- 获取身份证号码省份 = "广东省"
  
- Case "45"
  
- 获取身份证号码省份 = "广西壮族自治区"
  
- Case "46"
  
- 获取身份证号码省份 = "海南省"
  
- Case "50"
  
- 获取身份证号码省份 = "重庆省"
  
- Case "51"
  
- 获取身份证号码省份 = "四川省"
  
- Case "52"
  
- 获取身份证号码省份 = "贵州省"
  
- Case "53"
  
- 获取身份证号码省份 = "云南省"
  
- Case "54"
  
- 获取身份证号码省份 = "西藏自治区"
  
- Case "61"
  
- 获取身份证号码省份 = "陕西省"
  
- Case "62"
  
- 获取身份证号码省份 = "甘肃省"
  
- Case "63"
  
- 获取身份证号码省份 = "青海省"
  
- Case "64"
  
- 获取身份证号码省份 = "宁夏回族自治区"
  
- Case "65"
  
- 获取身份证号码省份 = "新疆维吾尔自治区"
  
- Case "71"
  
- 获取身份证号码省份 = "台湾省"
  
- Case "81"
  
- 获取身份证号码省份 = "香港特别行政区"
  
- Case "82"
  
- 获取身份证号码省份 = "澳门特别行政区"
  
- Case Else
  
- 获取身份证号码省份 = ""
  
- End Select
  
- End Function
  
  复制代码   
                        
                     
                    
                    
                    
                    
                    
                    
                    
                    
                        
                        
                     
                     |