- 33
- 0
- 约4.1千字
- 约 5页
- 2015-09-26 发布于重庆
- 举报
提取身份证号码的特定信息
提取身份证号码的特定信息
许多用户径常使用Excel 函数来提取身份证号码的相关信息,其实利用Word 的Application
事件也能完成这样的工作,如图287-1 所示。
图287-1 输入身份证号码后自动提取相关信息的表格
中国公民的身份证号码是一种特征组合码,早期的为15 位,现在的为18 位。
15 位号码的规律:从第7 位至第8 位是出生的年份,第9 位至第 10 位是出生的月份,第
11 位至第 12 位是出生的日子,最后3 位是顺序码,其中顺序码的最后一位是判断性别的根本,
最后一位是奇数是男性,偶数则是女性。
18 位号码的规律:从第7 位至第 10 位是出生的年份,第 11 位至第 12 位是出生的月份,
第13 位至第 14 位是出生的日子,第 15 至17 位是顺序码,最后 1 位是校验码。其中顺序码的
最后一位是判断性别的根本,即号码的倒数第二位是奇数则是男性,偶数则是女性。
下面利用这个规律,结合Application 事件来演示此过程。
步骤一 按如图287-1 所示的样式制作3 个表格,并在相应的位置分别填入“姓名:”、“身
份证号码:”、“性别:”、“出生年月:”。
1 / 5
步骤二 按Alt+F11组合键打开【Visual Basic 编辑器】窗口,依次单击菜单【插入】→
【类模块】,在【属性】窗口中修改类模块的名称为“clsIDCard ”,如图287-2 所示。
图287-2 插入一个类模块,并修改其名称
步骤三 在类模块“cls DCard ”的代码窗口中输入如下代码。
Public WithEvents App As Word.Application
声明一个包含事件的 Application 类型对象
Private Sub App_WindowSelectionChange(ByVal Sel As Selection)
On Error Resume Next
Dim idString As String, idLen As Integer
Dim sYear As String, sMonth As String
Dim sYearAndMonth As String
Dim sLadyOrGentleman As String
Dim isSex As String
Dim isSexChar As Integer
With Selection.Tables(1)
idString = .Range.Cells(5).Range.Text
idLen = Len(idString)
如果是15 位的身份证
If idLen = 17 Then
2 / 5
确定年月
sYear = Mid(idString, 7, 2)
sMonth = Mid(idString, 9, 2)
sYearAndMonth = 19 sYear 年 sMonth 月
.Range.Cells(9).Range.Text = sYearAndMonth
确定性别
isSexChar = Mid(idString, idLen - 2, 1)
If isSexChar Mod 2 = 0 Then
isSex = 女
sLadyOrGentleman = 小姐
Else
isSex = 男
sLadyOrGentleman = 先生
End If
.Range.Cells(7).Range.Text = isSex
.
原创力文档

文档评论(0)