期中考试结束后的一天,我校的地理老师来到我的办公室,希望我能够帮助他把学生的成绩按照分数分出等级。要求是90分及90分以上的为A,75分至89分的为B,60分至74分的为C,不足60分的为D。为了快速的解决这个问题,而且能使他以后自己也能够很方便的为成绩分等级,我决定使用Excel中的“ 宏”来完成。
第一步:建立工作表,存放基本信息。比如:学生学号、姓名、成绩、字母等级。输入学生的数据。如图1。

第二步:创建宏,并修改宏
1. 单击“ 工具→宏→录制新宏”,创建一个新的宏。在录制新宏对话框内,输入宏名(本例用DENGJI);“ 快捷键”可有可无(本例用Ctrl+Shift+K,注意不要使用Excel默认的快捷键Ctrl+C等,会为以后的工作带来不必要的麻烦);“保存在”选择“当前工作簿 ”,“说明”简单地为新宏做一下注解,为了以后使用方便,如图2。然后单击[确定]按钮,工作表中显示“ 停止录制”按钮条后,单击“ 停止录制”按钮。

2. 在菜单条上,单击“工具→宏”,打开宏对话框。选择修改的宏名,然后单击[ 编辑]按钮,如图3,启动VBA编辑器。

3. 在第一行你会看到Sub后跟着宏名(如:DENGJI)以及双括号。删除Sub,并在Sub的位置上键入“ Function”,如图4。

4. 声明变量,Excel查找变量,并返回变量的值。(本例中使用CHENGJI),结果是第一行变为:Function DENGJI(CHENGJI)。
5. 宏的标题文本不动,将光标的插入点放在第一空行,输入代码如图5:

if CHENGJI >= 90 then
DENGJI = "A"
else if CHENGJI >= 75 then
DENGJI = "B"
else if CHENGJI >= 60 then
DENGJI = "C"
else
CHENGJI = "D"
end if
6.关闭VBA编辑器,返回到Excel工作表。
7. 在“ 字母等级”列的第一个空白单元格中输入下列公式:=DENGJI(C3)。回车即可出现等级“ A”,如图6。

8. 然后利用填充柄将其他单元格填充上即可。
以后只要地理老师打开这个工作簿,将基本数据输入后,利用DENGJI这个宏,就可以将学生的成绩变成等级。