曾洋
(重庆大学 计算机学院,重庆 400030;重庆电子工程职业学院,重庆401331)
EXCEL VBA在数据表处理中的应用
曾洋
(重庆大学 计算机学院,重庆 400030;重庆电子工程职业学院,重庆401331)
Excel是办公自动化软件Office的套件之一,VBA则是Office中提供的一项重要功能。本文通过对Excel中数据表处理的实例,展现VBA在拓展Excel功能方面起到的重大作用。
Excel;VBA;数据表处理
VBA是Office办公软件套件内嵌的编程语言。它采用Visual Basic的语言和面向对象技术,能够很方便地增强宿主的功能,实现用户定制化的便捷技术。本文使用VBA对Excel功能进行了拓展,编制了相应功能的程序和函数,并与Excel自带函数作比较,使大家了解VBA在拓展Excel功能、提高工作效率、减少错误发生机会等方面起到的作用。
假设一个系的学生会副部长以上的成员共有25人,在学期考核时相互进行打分,因此就会产生25张原始数据表(如图1所示)。
现在要将每张表中每个学生干部的综合得分算出来,然后再把每张表相同位置单元格的数据求平均值填入汇总表中对应的单元格内(如图2所示),
最后按汇总表的综合等分分出等级(90~100分为优秀,80~89为良好,70~79为中等,60~69为合格,60以下为不合格)。
首先,我们求每个人的综合得分,即在每张表的L3单元格中输入公式“=SUM(B3:K3)”然后通过引用依次计算出下面每个人的分数。然后在汇总表的B3单元格中输入“=AVERAGE(应梦姣:廖超!L3)”计算出25张表对该项打分的平均值,再通过引用计算出其他单元格的结果。最后在汇总表的M3单元格中输入公式“=IF(0R(L3<0,L3> l00),“数据有误”,IF(L3<6O,“不及格”,IF(L3<70,“及格”,IF(L3<80,“中等”,IF(L3<90,“良好”,IF(L3<=100,“优秀”))))))”得出第一个学生干部的等级,再使用引用得到其他人的等级。
在Excel菜单中选择 “工具一>宏一>Visual Basic编辑器”,它是VBA程序设计的开发环境,在这里可以进行代码的编写以及对话框的设计等。然后单击“插入”菜单下的“模块”,在代码窗口中输入下列自定义代码:
通过运行以上程序,可以得到每张原始表综合得分的数据,并同时计算出汇总表中除等级以外的所有数据。然后我们再定义一个函数来划分等级,该函数定义为“grade(综合得分)”具体代码如下:
进入Excel工作簿界面,在对应的要计算某个人等级的单元格插入自定义函数(如图3所示),即“等级=grade (综合得分)”,然后填充序列(如图4所示),可得出所有学生的等级。
首先,在我们对每张考核表进行综合得分计算的时候,如果用Excel自带的函数来完成,就需要对每张表重复设置公式,表越多,重复次数就越多,这样效率很低。当表的数量达到一定数量的时候,手工操作将成为不可能完成的工作。而运用VBA语言编写的程序则不用关心工作表数量多少的问题,它会遍历所有的表并完成相应的计算。
其次,在对汇总表进行统计的时候,我们输入的公式为 “=AVERAGE(应梦姣:廖超!L3)”,由此可知,只有当所有原始数据表排列在表“应梦姣”和表“廖超”之间,且汇总表的位置不在它们中间时,才能正确统计所有的原始数据表,一旦位置发生变化,统计结果就会有误。而运用VBA程序来操作,则可避免因表的排列顺序不同引起的错误。
第三,根据计算过程和结果发现,Excel自带的IF函数不仅在书写公式时繁琐。公式结构不清晰,难于记忆,而且可用性也较差。对于每个月工资表的制作,都需要计算个人所得税。当需要再次计算时,虽然可以复制公式,但却必须每次都要确认公式中单元格地址引用的正确性,而需要确认的单元格地址就多达7处(如图5所示)。
这样的操作既繁琐又容易出错,对操作人员的要求较高。而使用VBA语言自己定义的函数可以代替一个长而复杂的公式或者系统自带函数,增强了可读性,层次清晰,易于理解。
第四,VBA编制的自定义函数或程序的可用性也是很强的。对于同一个 Excel工作簿文件,当编制完成后,不同工作表之间都可以自由使用,无论计算多少次,都无需更改任何操作;对基于多个 Excel工作簿文件来完成同样的计算,也不需要在没有编制代码的工作簿中再次书写代码,只需在VBA编辑器中将该模块拖拽至相应的工作簿中即可,实现了一次编写,多次使用,无需修改无需校对的便利。
第五,使用VBA安全性高也是一个优点。对于代码编写者而言,有很多程序及代码编制的思想理念都是需要保密的。使用VBA编写的自定义函数或程序,只能让用户看到其名称,而不是直接将代码或公式展现在用户面前,起到了一定的保密作用;而对于用户来说,只是使用其完成所需的功能,无需去了解和掌握其中的结构、原理,简化了操作,也可有效减少因误操作改变了公式结构,导致计算结果出错等事情的发生。
VBA在办公自动化软件中的使用能够达到简化操作、提高工作效率,减少错误发生的目的。此外,VBA还有很多其他方面的用途,只要我们去认识它、使用它,它将给我们带来更多的方便与快捷。
[1]博彦科技著.Office VBA编程高手[M].北京:北京大学出版社,2000.
[2]盖凯军,刘忠译.Scott D F.Visual Basic for Applications6实用大全[M].北京:中国水利水电出版社,1999.
[3]北京博彦科技发展有限责任公司译.Microsoft Corporation.Office 2000应用程序开发[M].北京:清华大学出版社,2000.
[4]张峋.EXCEL VBA.入门与典型实例[M].北京:清华大学出版社,2007.
[5]严丽,邓哲.基于VBA的Office二次开发[J].通化师范学院学报,2006(7).
[6]方文英.Excel宏编程的应用[J].办公自动化,2008(7).
[7]万鸿儒.Excel VBA程序设计[M].北京:中国铁道出版社,2004.
责任编辑 王荣辉
Application of the Data Table Processing by Excel VBA
ZEGN Yang
(College of Computer Science,Chongqing University,Chongqing 400030,China; Chongqing College of Electronic Engineering,Chongqing,401331,China)
Excel is one of office automation software.VBA as an important function is provided by Office.By using a example of the data table processing in Excel,the paper reveals that VBA helps a lot to extend the function of Excel.
Excel;VBA;data table processing
TP39
A
1674-5787(2010)03-0161-03
2010-04-27
曾洋,男,重庆市人,重庆大学计算机学院在读硕士研究生,重庆电子工程职业学院,讲师。