5. 验证考生准考证号
① 建一个“ 考生名单” 工作表。在A 、B 、C 列分别输入序号、准考证号、考生姓名,其中序号和准考证号的输入可采用序列填充的方法完成。② 选中B 列,在名称框中输入“ 考号” ,回车确定,把B 列命名为准考证号,如图5 所示。
图5
③ 回到“ 试卷”
工作表中,选中要输入准考证号的D2 单格,执行菜单命令“ 数据/ 有效性” ,在“ 设置” 选项卡的“ 允许” 下拉列表中选择“ 序列” ,取消“ 提供下拉箭头” 复选项,在“ 来源” 文本框中输入公式“ = INDIRECT(" 考号") ” 。切换到“ 出错警告” 选项卡,选中“ 输入无效数据时显示警告” 复选框,并输入“ 错误信息” 为“ 你输入的准考证号并不存在,请重新输入” ,并设置样式为“ 停止” 。最后单击“ 确定” 按钮。④ 在F3 单元格中输入公式“ = IF(D2="","",VLOOKUP(D2, 考生名单! B:C,2,FALSE)) ” ,这个公式会在输入准考证号后自动显示考生姓名。6. 实现随机抽题
① 右击“ 出题” 按钮,单击“ 指定宏” 快捷菜单命令(若指向按钮中间右击,则不能指定宏),在弹出的对话框中输入宏名为“ 出题” ,如图6所示。
图6 指定宏
② 单击对话框右侧的“ 新建” 按钮,在弹出的代码编辑窗口中输入如图7 所示的代码。
图7 输入代码
Sub 出题()
If Range("D2").Value = 0 Then
提示= MsgBox(" 请先输入准考证号")
GoTo 重来
End If
说明:如果D2 为空则弹出提示要求输入准考证号并直接跳到后面的“ 重来” 处。
Sheets(" 单选题"). Range("A:D").Sort Key1:=Sheets(" 单选题"). Range("D2"), Order1:=xlAscending,Header:=xlGuess
Sheets(" 多选题"). Range("A:D").Sort Key1:=Sheets(" 多选题"). Range("D2"), Order1:=xlAscending,Header:=xlGuess
Sheets(" 判断题"). Range("A:D").Sort Key1:=Sheets(" 判断题"). Range("D2"), Order1:=xlAscending,Header:=xlGuess
说明:以上三行分别对单选题、多选题和判断题工作表的A:D 区域按D 列随机数按升序排序。
Columns("B:B").Rows.AutoFit
说明:对B 列设置最适合行高,以完整显示题目。
Range("D5").Select
说明:定位到D5 以便输入答案
ActiveSheet.Shapes(" 出题按钮"). Visible = False
说明:隐藏出题按钮以防重复选题。
ActiveSheet.Shapes(" 评分按钮"). Visible = True
说明:显示评分按钮。
重来:
End Sub
注意:试卷中的题目总是显示各题库最前面的若干题,而在此对各题库按随机数排序后,最前面的若干题自然是随机的,也就实现了随机抽题。
7. 记录成绩
① 在功能区中打开“ 开始” 选项组,单击“ 插入” 选项,再选择列表中的“ 工作表” 选项,新建一个工作表,并将其标签名修改为“ 成绩记录” 。
② 在“ 成绩记录” 表的A2 单元格中输入公式“ = NOW() ” 。
③ 选中A 列并右击,单击快捷菜单的“ 设置单元格格式” 命令,然后在弹出的对话框中设置日期格式以显示当前日期时间,如图8 所示。
图8 设置单元格格式
④ 在B2 、C2 单元格中分别输入公式“ = 试卷! D2 ” 、“ = 试卷! F2 ” ,用以显示相应数据。
⑤ 在D2 单元格中输入公式“ = SUM(E2:G2) ” ,用来对后面三个得分进行合计运算。
⑥ 在E2 、F2 、G2 单元格中则分别输入公式“ = SUM( 试卷! E5:E34) ” 、“ = SUM( 试卷! E36:E75) ” 、“ = SUM( 试卷! E77:E106) ” ,用来分别对单选题、多选题、判断题这三种题型得分进行合计运算。