魔方网表 让信息化更简单

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

查看: 2619|回复: 0

Excel帮你填写报名信息卡

[复制链接]
lnxxnchzyl 发表于 2009-8-20 15:50:00 | 显示全部楼层 |阅读模式
[size=+0]

    每一年的中、高考报名工作中,查找考生姓名、联系地址的区位码是一项必不可少的工作。查找这些汉字的区位码,通常都要对照一本小册子——《汉字区位码手册》进行查找,这不仅不方便,而且也容易出错。利用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)。点击〔执行〕,在弹出的对话框中输入想要查询的人数,点击〔确定〕按钮,所有的姓名都被自动转换了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|魔方软件 ( 京ICP备08008787号 )

京公网安备 11010702001722号

GMT+8, 2025-9-6 18:53 , Processed in 0.065279 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表