今天朋友说要录一个关于所在单位的人员信息的表格(真搞不懂,出生开始怎么要填那么多表),
表格上有一项是身份证号,但是每个号码占一个单元格如下图:
________________________________________________________
|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