织梦CMS - 轻松建站从此开始!

VBA教程、excel VBA编程、VBA视频、VBA控件,VBA应用教程,vba技巧

用vba实现excel批量把15位的身份证号转换为18位的

时间:2011-05-20 07:15来源:未知 作者:vba技术联盟 点击:
用 vba 代码 :把a5:a100 里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(

vba代码:把“a5:a100 ”里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
 

(责任编辑:vba技术联盟)
顶一下
(9)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
验证码: 点击我更换图片
栏目列表
推荐内容