录入身份证号的宏

为了解决录入人员信息表格中身份证号占用多个单元格的问题,本文分享了一个简单的VBA宏代码。该宏通过InputBox获取用户输入的身份证号码,验证其长度,并将号码分别填入相应单元格。代码包括设置身份证号、移动单元格位置等功能,方便后续学习和改进。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天朋友说要录一个关于所在单位的人员信息的表格(真搞不懂,出生开始怎么要填那么多表),
表格上有一项是身份证号,但是每个号码占一个单元格如下图:
________________________________________________________
|1|2|3|4|5|6|7|8|9|0|1|2|3|4|5|         
|1|2|3|4|5|6|7|8|9|0|1|2|3|4|5|6|7|8|

于是七拼八凑的写了个宏,还好,勉强可以用,特此把VBA代码贴在此地,以后再研究学习。
Attribute VB_Name = "模块1"
Sub 录入身份证号()
Attribute 录入身份证号.VB_ProcData.VB_Invoke_Func = "t/n14"
    personid = InputBox("身份证号码", "身份证号码", vbOKCancel)
    idlength = Len(personid)
   
    If (idlength = 15 Or idlength = 18) Then
        setPersonID idlength, personid
    Else
        MsgBox ("身份证号长度出错,输入了" + Str(idlength) + "位号码")
    End If
End Sub
Sub my_offset()
ActiveCell.Offset(0, 1).Select '当前单元格向右移动一格

'ActiveCell.Offset(0, -1).Select '当前单元格向左移动一格
'ActiveCell.Offset(1, 0).Select '当前单元格向下移动一格
'ActiveCell.Offset(-1, 0).Select '当前单元格向上移动一格
End Sub
Sub setCurrentCellValue(content)
    ActiveCell.Value = content
End Sub

Sub setPersonID(idlength, content)
    idcounter = 0
    While (idcounter < idlength)
        setCurrentCellValue (Mid(content, idcounter + 1, 1))
        my_offset
        idcounter = idcounter + 1
    Wend
End Sub

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值