VBA编程实现excel数据管理的阅卷

龙源期刊网 http://www.qikan.com.cn

VBA编程实现excel数据管理的阅卷

作者:吴经志

来源:《电脑知识与技术》2009年第24期

摘要:VBA是一种自动化语言,它可以使常用的程序自动化,可以创建自定义的解决方案,,还可以将EXCEL用做开发平台实现应用程序。因此,VBA可以称作EXCEL的“遥控器”。同时,VBA作为新一代标准宏语言,提供了面向对象的程序设计方法和相当完整的程序设计语言。对于在工作中需要经常使用Office 套装软件的用户,善用VBA 有助于使工作自动化,提高工作效率。

关键词:VBA;excel;程序设计

中图分类号:TP317文献标识码:A文章编号:1009-3044(2009)24-6627-02

Examining Test Papers of Excel’s Date Management by VBA Programming WU Jing-zhi

(Shaoguan University,Shaoguan 512005, China)

Abstract: VBA is one kind of automated language, it may cause the commonly used automatic programming,it may found from the definition solution, it may with do EXCEL develops the platform realization application procedure.so, VBA may be called as EXCEL the remote control. VBA takes the new generation of standard great language,it has provided the object-oriented programming method and the quite complete programming language. Regarding needs to use the Office coverall software frequently in the work the user,who makes good use of VBA to be helpful in causes the work automation and enhances the working efficiency. Key words: VBA; excel; programming

在将“高效”贯彻到我们日常工作的今天,如何高效地工作一直是我们探讨的问题。作为在日常办公中离不开的Excel软件也在竭尽所能提高功能,帮助我们节省工作时间、提高工作效率。其中VBA就是这样一个利器。

1 VBA简介

龙源期刊网 http://www.qikan.com.cn

VBA是什么?VBA(Visual Basic For Application)是一种自动化语言,它可以使常用的程序自动化,可以创建自定义的解决方案,此外,还可以将EXCEL用做开发平台实现应用程序。 对多数人来说,使应用程序自动化仍是充满挑战性的领域。对每个需要自动化的应用程序,人们不得不学习一种不同的自动化语言,例如:可以用EXCEL的宏语言来使EXCEL自动化,使用WORD BASIC使WORD自动化等等。微软决定让它开发出来的应用程序共享一种通用的自动化语言——Visual Basic For Application(VBA),可以认为VBA是非常流行的应用程序开发语言VISUAL BASIC 的子集。实际上VBA是寄生于VB应用程序的版本。

VBA和VB的区别包括如下几个方面:VB是设计用于创建标准的应用程序,而VBA是使已有的应用程序(EXCEL等)自动化;VB具有自己的开发环境,而VBA必须寄生于已有的应用程序;要运行VB开发的应用程序,用户不必安装VB,因为VB开发出的应用程序是可执行文件(*.EXE),而VBA开发的程序必须依赖于它的父应用程序,例如EXCEL.。尽管存在这些不同,VBA和VB在结构上仍然十分相似。如果已经了解了VB,会发现学习VBA非常快。相应的,学完VBA会给学习VB打下坚实的基础。而且,当学会在EXCEL中用VBA创建解决方案后,即已具备在WORD ACCESS OUTLOOK FOXPRO PROWERPOINT 中用VBA创建解决方案的大部分知识。

VBA一个关键特征是你所学的知识在微软的一些产品中可以相互转化。Office取得巨大成功的一个重要原因就是VBA,使用VBA可以完成很多事情,基于Excel、Word的VBA小程序非常多。VBA程序员很多是业余程序员,但编写出来的程序所解决的却是工作中需要解决的问题。

2 VBA编程实例

我们知道excel数据管理部分包括数据透视表、分类汇总、数据排序等和各种公式函数运算,这些操作各不相同,如果要对这部分题目进行阅卷操作,针对不同的知识点要分别写出对应的阅卷模块。我们发现,完成同一道excel数据管理题目,可以有不同的操作方法,在阅卷的时候要把这些不同的操作方法都考虑进去的话,阅卷模块的编写就显得很繁琐,而且阅卷人也未必能考虑的很全面。我们发现,对一道excel数据管理题,不论以什么方法来做,最后的结果只能有一种情况,那么我们可以针对这个结果采用取样匹配的方式来进行阅卷,这样一来就能很轻松实现对各种类型的excel数据管理题目的阅卷工作。

龙源期刊网 http://www.qikan.com.cn

要对一道excel数据管理题目进行阅卷,需要编写一个针对该题目的调用函数,另外还需要一个公有的阅卷模块。总的思路是在该题目函数里输入要进行取样的单元格坐标及单元格内的数据(答案),然后调用公有阅卷模块,与学生的操作结果进行匹配,完全匹配给分,否则0分。 如下,我们来看一个例子:以F1单元格为左上角创建一数据透视表,表现出性别与职称对照分类的工资平均值,要求同一职称的数据在同一行,同一性别的数据在同一列。电子表格文件为“xls001.xls”,数据所在的工作表为“sheet1”,文件目录为“D:\\test”文件夹。例题原数据(图1 例题数据)及操作结果(图2 操作结果)。

如前所述,对该操作结果进行批改,要有一个题目函数和公有阅卷模块。题目函数的功能为打开待批改的电子表格文件,输入取样单元格坐标及单元格内数据(答案),通过调用公有模块将输入的数据(答案)与操作结果进行匹配。 题目函数主要代码及相关说明如下: Function xls001(参数列表) as single Score = 5‘题目初始分值,假设为5分

sfilename = \xls001.xls\待批改文件路径

Try‘引入try …… catch 语句避免因文件不存在导致程序无法运行 oexcelbook = oexcel.Workbooks.Open(sfilename) ‘打开文件 Try

Dim air(10) As Object '该数组用于保存取样单元格坐标 Dim ascont(10) As Object '该数组用于保存取样单元格内数据 air = New Object() {\输入取样单元格坐标

ascont = New Object() {\平均值项:工资\性别\职称\输入取样单元格内数据(答案) xls001 = test(oexcel, air, ascont, score) Catch ex As Exception End Try

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4