Excel帮你填写报名信息卡

王朝other·作者佚名  2008-05-21
窄屏简体版  字體: |||超大  

每一年的中、高考报名工作中,查找考生姓名、联系地址的区位码是一项必不可少的工作。查找这些汉字的区位码,通常都要对照一本小册子――《汉字区位码手册》进行查找,这不仅不方便,而且也容易出错。利用office/9.shtml' target='_blank' class='article'>Excel的宏解决了这一问题。

1. 建立一Excel工作簿,选择sheel1工作表,将所有的考生姓名录入A列中。

2. 打开“工具/宏”,输入所要创建的宏名(qw),点击〔创建〕。

3. 在弹出的模块(代码)框中录入如下代码:

Sub qw()

Dim i, j, k, l, rs As Integer

Dim cc As Long

Dim str, newstr, hz1, hz2, ss As String

i = 0

k = 1

j = 0

'输入待查姓名人数

rs = InputBox("待查询姓名区位码人数?", "请输入")

str = ""

hz2 = ""

ss = ""

For j = 1 To rs

l = 0

str = Cells(j, 1).Value

'读取A列中第J行单元格内的姓名

For i = 1 To Len(str)

newstr = newstr + Mid(str, i, 1)

If Right(Mid(str, i, 1), 1) = " " Then l = l + 1

Next i

'过滤掉姓名中的空格

If ((l > 0) And (Right(newstr, 1) <> " ")) Then hz1 = MidB(newstr, 1, 2) + Right(newstr, 2)

If ((l > 0) And (Right(newstr, 1) = " ")) Then hz1 = newstr

If l = 0 Then hz1 = newstr

If Len(hz1) < 1 Then End

'计算汉字所对应的区位码

For k = 1 To Len(hz1) + 2 Step 2

ss = MidB(hz1, k, 2)

cc = Asc(ss)

If cc < 0 Then

cc = cc + 65535 + 1

If cc > 255 Then

b2 = Right("0" && ((cc And 255) - 160), 2)

b1 = Right("0" && (Int(cc / 256) - 160), 2)

End If

End If

'用"'"分开每一汉字的区位码

If cc > 255 Then hz2 = hz2 + b1 + b2 + "'"

Next k

'在B列中输出A列中相应姓名的区位码

Cells(j, 2) = hz2

newstr = ""

hz2 = ""

Next j

End Sub

4. 在确认A列中已输入完所要查询的考生姓名后,就可以打开“工具/宏”,选择刚刚创建的宏名(qw)。点击〔执行〕,在弹出的对话框中输入想要查询的人数,点击〔确定〕按钮,所有的姓名都被自动转换了。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航