巧用VBA建立学生考试成绩通知单
每到学期期末临近,恐怕最忙的就是班主任了,不仅要统计学生成绩,还要填写家长通知书,更怕的是给每位学生写评语,一个50人的班级足以让你填写到才源枯竭、手脚抽筋!我们可以利用Excel中的VBA来自动完成所需任务,方便快捷,以收到一劳永逸之效。
第一步:学生成绩前期整理
在Excel工作簿中建立4个表,分表起名为“成绩”、“名次”、“通知书”、“评语”,在“成绩”表中存入的是期末考试成绩,在“名次”表中存入的是历次考试学生的年级排名,在“评语”表中存入的是班主任评语(班主任可以从网上搜集并整理到表中),而“通知书”表中则是临时生成的所需通知书。其中“成绩”、“名次”表中的字段列可以增加或是删除。各个表如图1、图2、图3所示:
第二步:“通知书”的制作
⑴选择“工具”菜单中的“宏”下面的“Visual Basic 编辑器”,进入代码编辑姿态,如图4所示。
⑵在“Sheet1(成绩)”处双击,在上图中的①处选“Wordsheet”在②处选“BeforeDoubleClick”,然后输入上图中的代码(具体代码可在“”下载),选择“成绩”工作表中的BeforeDoubleClick事件,响应用户双击事件,以便创建考试成绩通知单。
⑶同理在“Sheet4(评语)”处双击,选择“成绩”工作表中的BeforeDoubleClick事件,然后输入图5中的代码(具体代码可在“”下载。
第三步:通知单自动填写
通过双击“成绩”表中包含“姓名”的列中的非空单元格,即时将数据分别从“成绩”和“名次”工作表中复制数据到“通知书”工作表中,并根据名次绘出嵌入式图表,数据源取自历次名次单元格中的数据。如果双击包含“姓名”的列中的单元格是空的或是非“姓名”的列中其他单元格,则不会生成考试成绩通知单。
通过双击“评语”表中包含“评语”的列中的非空单元格,即时将选中评语复制到“通知书”工作表中相应的位置,如果对评语不满意还可以进行修改。最后形成的“通知书”效果如图6所示。
友情提示:要想使上述VBA程序能够运行,需要对Excel中宏的安全性进行设置:点击“工具→宏→安全性”,将宏的安全性设置为“低”,如图7所示。