魔方网表 让信息化更简单

 找回密码
 注册
查看: 1762|回复: 0

自动转换15位身份证号码位18位

[复制链接]
lnxxnchzyl 发表于 2009-10-19 09:52:17 | 显示全部楼层 |阅读模式
自动转换15位身份证号码位18位
功能:将15的身份证号升为18位(根据GB 11643-1999)
参数:原来的号码(15位)
返回:升位后的18位号码
用法:=IDCODE(a1)  (假设A1单元格存放的是原15位号码)

Public Function IDCode(sCode15 As String) As String
  Dim i,num As Integer
  Dim code As String
  num = 0
  IDCode = Left(sCode15, 6) + "19" + Right(sCode15, 9)
  ' 计算校验位
  For i = 18 To 2 Step -1
   num = num + (2 ^ (i - 1) Mod 11) * (Mid(IDCode, 19 - i, 1))
  Next i
  num = num Mod 11
  Select Case num
  Case 0
   code = "1"
  Case 1
   code = "0"
  Case 2
   code = "X"
  Case Else
   code = Trim(Str(12 - num))
  End Select
  IDCode = IDCode + code
End Function
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|魔方软件 ( 京ICP备08008787号 )

京公网安备 11010702001722号

GMT+8, 2024-5-5 10:49 , Processed in 0.770642 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表