1 / 13
文档名称:

用EXCEL制作模拟考试系统.doc

格式:doc   页数:13页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

用EXCEL制作模拟考试系统.doc

上传人:cdsqbyl 2015/4/15 文件大小:0 KB

下载得到文件列表

用EXCEL制作模拟考试系统.doc

文档介绍

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

建立“试卷”工作表,你可以按需要设置试卷,并输入单选题、多选题、判断题三个大题目,多选题需注明错、漏、多选均不得分。并留出相应的题目位置,单选题30题(A5:C34),多选题40(A36:C75),判断题30题(A77:C106)。
用“自选图形/基本形状”中的棱台画一个按钮,选中在名称框中输入“出题按钮”4字回车,把它命名为“出题按钮”。再右击此按钮选择“添加文字”,在按钮上输入“出题”2字。同样再画一个按钮,把它命名为“评分按钮”,添加文字“评分”。(如图2)
图2

在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)题的内容保持一致。

选中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的顺序输入多选项,否则无法正确评分,若觉得多选题要输入这一大串有效性设置太麻烦,不设置有效性也是可以,你只要在题目中注明不按顺序的不给分不就行了。


建一个“考生名单”工作表,在A、B、C列分别输入序号、准考证号、考生姓名,选中B列在名称框中输入“考号”,回车确定把B列命名为考号(如图3)。回到“试卷”工作表选中要输入准考证号的D2单格,单击“数据/有效性”,在“允许”中选择“系列”,取消“提供下拉箭头”复选项,在“来源”中输入=INDIRECT("考号")。切换到“出错警告”选项卡,输入错误信息为“你输入的准考证号并不存在,请重新输入”,选中“输入无效数据时显示警告”,并设置样式为“停止”。在F3单元格输入公式=IF(D2="","",VLOOKUP(D2,考生名单!B:C,2,FALSE)),这公式会在输入准考证号后自动显示考生姓名。

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