大家知道,我们在编辑Excel工作表时,除了可以用其内置的函数处理表中的数据外,还可以根据自己的实际需要,自定义函数来处理表中的数据。
如图1所示是一个学生基本情况登记表,学号的编制原则是:前4位是年份,第5位是初、高中代码(1是初中,2是高中),第6位是年级代码(1分别代表初、高一等),第7、8位是班级代码,后面是序号。下面,我们以一个具体的实例,自定义一个函数,根据学号来自动填写班级名称(即图中的D列内容)。
1.启动Excel 2003(其它版本请仿照操作),打开相应的工作表。
2.执行“工具→宏→Visual Basic编辑器”命令(或者直接按“Alt+F11”组合键),进入Visual Basic编辑状态(如图1)。
图1编辑器
3.执行“插入→模块”命令,插入一个新模块。再双击插入的模块,进入模块代码编辑状态。
4.将下列代码输入其中:
Function bj(xh)
Select Case Mid(xh, 5, 1)
Case 1
bj = '初' && Mid(xh, 6, 3) && '班'
Case 2
bj = '高' && Mid(xh, 6, 3) && '班'
End Select
End Function
[友情提醒]
①上述代码中,“bj”是函数命令,“xh”是变量名称,二者均可以随意修改。
②自定义函数结构是(如果有多个变量,请用英文状态下的逗号分隔):
Function函数名称(变量名称)
代码
End Function
③使用下面的代码,可以达到同样的效果:
Function bj(xh)
If Mid(xh, 5, 1) = 1 Then
bj = '初' && Mid(xh, 6, 3) && '班'
Else
bj = '高' && Mid(xh, 6, 3) && '班'
End If
End Function
5.代码输入完成后,关闭Visual Basic编辑窗口,返回Excel编辑状态。
6.选中D2单元格,输入公式:=BJ(A2),再用“填充柄”将上述公式复制到D列下面的单元格区域中,班级名称即可自动填入相应的单元格中(参见图2)。
图2学生登记表