用EXCEL制作模拟考试系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用EXCEL制作模拟考试系统

1.建立题库

打开Excel 2003,建立“单选题”工作表(如图1),在A2输入公式=ROW()-

1&"."以自动生成序号,在D2输入=IF(C2="","",RAND()),选中A2:D2拖动其填充柄向下复制到其他单元格,大概有几百行也就够了,剩下的需要时再复制。按住Ctrl键拖动工作表标签复制出两份,分别重命名为多选题、判断题。

图1

2.设计试卷

建立“试卷”工作表,你可以按需要设置试卷,并输入单选题、多选题、判断题三个大题目,多选题需注明错、漏、多选均不得分。并留出相应的题目位置,单选题30题(A5:C34),多选题40(A36:C75),判断题30题(A77:C106)。

用“自选图形/基本形状”中的棱台画一个按钮,选中在名称框中输入“出题按钮”4字回车,把它命名为“出题按钮”。再右击此按钮选择“添加文字”,在按钮上输入“出题”2字。同样再画一个按钮,把它命名为“评分按钮”,添加文字“评分”。(如图2)

图2

3.显示题目

在A5输入公式=INDIRECT("单选题!R"&ROW()-3&"C"&COLUMN(),0),选中A5复制,再选中A5:C34进行粘贴。同样在A36输入公式=INDIRECT("多选题!R"&ROW()-34&"C"&COLUMN(),0)并复制到A36:C75,在A77输入公式=INDIRECT("判断

题!R"&ROW()-75&"C"&COLUMN()并复制到A77:C106。在E4单元格输入公式

=IF(D4=C4,1,0),这公式用来判断如果D4中的答案与C4的标准答案一致就得1分否则为0分。

A5的公式表示对单选题工作表中同列、行数差3的单元格(A2)的引用,公式中使用了R1C1格式的单元格编号,其中3、34、75是由第一题所在的行数减2得来。这公式实现的是绝对位置引用,即不管在单选题工作表中进行插入、删除行或排序,A5显示的始终都是你从单选题A2中直接看到的内容。因此A5:C34、

A36:C75、A77:C106三个区域将分别与相应题库中最前面的30(或40)题的内容保持一致。

4.答案限制

选中D5:D34单击“数据/有效性”,在“允许”中选择“系列”,选中“提供下拉箭头”复选项,在“来源”中输入“A,B,C,D”,不含引号且其中逗号为半角格式(如图1)。切换到“出错警告”选项卡,输入错误信息为“只能输入A、B、C、D中的一项,其他任何符号或空格均为非法。”,选中“输入无效数据时显示警告”复选项,选择样式为“停止”(如图2),确定完成设置。

图1

图2

同样对多选题D36:D75,判断题D77:D106设置数据有效性,只是“来源”要分别换成

“A,B,C,D,B,AC,AD,BC,BD,CD,ABC,ACD,BCD,ABCD”和“?,×”。“出错警告”也要做相应修改,特别是多选题一定要说明必须按ABCD的顺序输入多选项,否则无法正确评分,若觉得多选题要输入这

一大串有效性设置太麻烦,不设置有效性也是可以,你只要在题目中注明不按顺序的不给分不就行了。

5.准考证号验证

建一个“考生名单”工作表,在A、B、C列分别输入序号、准考证号、考生姓名,选中B列在名称框中输入“考号”,回车确定把B列命名为考号(如图3)。回到“试卷”工作表选中要输入准考证号的D2单格,单击“数据/有效性”,在“允许”中选择“系列”,取消“提供下拉箭头”复选项,在“来源”中输入

=INDIRECT("考号")。切换到“出错警告”选项卡,输入错误信息为“你输入的准考证号并不存在,请重新输入”,选中“输入无效数据时显示警告”,并设置样式为“停止”。在F3单元格输入公式=IF(D2="","",VLOOKUP(D2,考生名

单!B:C,2,FALSE)),这公式会在输入准考证号后自动显示考生姓名。

6.随机抽题

右击“出题”按钮,选择“指定宏”,在弹出窗口中,输入宏名为“出题”,单击“新建”按钮,编辑如下代码:

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

相关文档
最新文档