公司里,经常会组织各种活动和比赛,它们的共同特点是什么?都需要进行评分!以前评委把分数写在纸上,旁边有人紧张地收分,算分,速度慢不说,还容易出错。于是,我就在Excel2007中用函数和VBA制作了一个智能电子评分系统,既提高了比赛的效率,又保证了比赛的公正。
兵马未动,粮草先行
假设有10位驾驶员参加技能比赛,11名评委参与评分。电子评分系统共由13张工作表组成,分别是:系统界面工作表(名称为“JM”)1份、评委评分工作表11份(名称为1、2……11)、成绩汇总工作表(名称为“CJ”)1份。
首先来添加表格。启动Excel2007,保存一份“Excel启用宏的工作簿(*.xlsm)”文档(如dzpf.xlsm)。反复单击窗口下方工作表标签(Sheet3)右侧的“插入工作表”按钮,添加11份空白工作表,并分别双击工作表名称标签,输入新的工作表名称(JM12……11、CJ)。在Excel2003,可以通过“插入→工作表”命令来添加空白工作表。
小提示:展开菜单取工具
在Excel2007中,“宏”及VBA的相关功能被集成到“开发工具”菜单中。默认情况下,这个菜单没有被展开,需要简单设置一下。单击左上角的Officelogo按钮,在随后出现的下拉菜单中,单击“Excel选项”按钮,选中左侧的“常用”栏目(见图1),再选中右侧的“在功能区显示‘开发工具’选项卡”选项,确定。
图1 Excel选项
调兵遣将,制作表格
评委评分表:
单击工作表“1”的名称,然后按住“Shift”键,再单击工作表“11”的名称,连续选中1~11工作表,一次性完成11位评委的评分表制作。
成绩汇总表:
切换到“CJ”工作表中,仿照图4的表格样式,输入相关的固定字符。分别选中B3~L3单元格,输入公式:='1'!C3……='11'!C3,调用各位评委为第1位选手所评定的分数。同时选中B3:N3单元格区域,用“填充柄”将公式复制到下面的区域中,完成其他选手成绩的统计。
界面工作表:
接下来,切换到“JM”工作表中,仿照图1的表格格式,制作空白界面工作表。
选择“开发工具→控件→插入”按钮,在下拉列表中选择“ActiveX控件”、“命令按钮”选项,拉出一个命令按钮来。右击按钮,选择“属性”选项,通过“Caption”、“Font”、“ForeColor”、“BackColor”等属性选项,分别设置命令按钮的字符(如“评委一”)、字体字号、字符颜色、按钮背景颜色等。调整好按钮的大小,并定位到表格的合适位置上。将上述按钮复制11份,并将“Caption”属性分别修改为“评委二”、“评委三”……“裁判长”。最后切换到各位评委工作表(1、2……11)中,同法再为每个工作表添加一个“保存”命令按钮。在Excel2003中,可以通过“视图→工具栏→控件工具箱→命令按钮”来制作相应的命令按钮。
各司其职,“宏”显身手
调用评委工作表的宏在上述代码编辑窗口中,执行“插入→模块”命令,插入一个模块,并将下列代码输入到右侧的代码编辑区域中,制作出“评委一”(pw1)调用对应工作表(Sheets("1"))的宏:
Subpw1()'宏名称为pw1
x = InputBox("请输入正确的密码:","评委身份验证")'弹出一个输入框
Ifx="gq1"Then'开始一个判断,如果输入字符(密码)为“gq1”,则执行下述操作:
Sheets("1").Visible=xlSheetVisible'取消工作表“1”隐藏属性
Sheets("1").Select'选中取消属性的工作表“1”
Else
MsgBox"请向裁判长索取正确的密码!","友情提醒"'如果密码不正确,弹出提示框
Sheets("JM").Select'仍然返回选中“JM”工作表
EndIf'结束判断
EndSub
修改上述代码中的宏名称、密码字符、工作表名称(Sheets("1")),制作出其他评委调用对应工作表的宏(pw2、Pw3……pw11)。运行此宏,输入正确的密码才能打开相应的工作表,否则仍然返回“JM”工作表中。保存并返回界面工作表的宏
Subbc()
ActiveWorkbook.Save'保存当前工作簿
Sheets("JM").Select'返回选中“JM”工作表
EndSub
调用裁判长工作表的宏
Subcpz()
x=InputBox("请输入正确的密码:","
身份验证")
Ifx="cpz"Then
Sheets("CJ").Visible=xlSheetVisible
Sheets("CJ").Select
Else
MsgBox"密码不正确!","友情提醒"
Sheets("JM").Select
EndIf
EndSub
关闭代码编辑窗口返回。这些宏代码能直接应用于Excel2003中。
相关文章
同类最新