利用Excel VBA生成学生成绩单_第1页
利用Excel VBA生成学生成绩单_第2页
利用Excel VBA生成学生成绩单_第3页
利用Excel VBA生成学生成绩单_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE1第3页共5页利用ExcelVBA生成学生成绩单摘要:本文用两个实例来介绍如何利用MS-OfficeExcel中的编程功能来实现自动化处理学生成绩单,使我们轻松的完成打印学生成绩单的工作,并在其中穿插介绍一些VBA编程知识。本文首先,简单的介绍了VBA的开发环境,其中本文只对用到的知识进行了介绍,如需详细内容请查阅VisualBasic程序设计书籍。然后,分别详介了VBA在Excel中的应用,在应用实例中,本文采用了先提出问题,后录制宏,再分析整理宏的方法,来介绍VBA在Excel中的应用,并且都给出了完整的程序代码,以方便读者使用。关键字:ExcelVBA宏代码当今是信息技术飞速发展的时代,人们日常工作、生活的方方面面都在运用信息技术,享受着信息技术给我们带来的便利,现在虽不是微软大旗一统天下,但在日常工作和生活中MS-Office仍然是人们运用最多、最广的办公软件。而在MS-Office中尤其以Word、Excel、PowerPoint的使用率最高,人们对这些软件的运用程度直接影响着工作的效率,本文以Excel为例,来介绍如何利用Excel中的VBA功能来实现自动化处理学生成绩单,使我们轻松的完成许多日常工作。在MS-Office中VBA(VisualBasicforApplications)是一种新的功能强大的宏语言,宏其实是指示Word、Excel、PowerPoint等执行功能的指令集合,在Excel中通过使用录制宏命令你能录制新宏,而且可以对已经录制的宏进行编辑修改,你一但学会如何在Excel中录制和编辑宏,你就掌握了许多在其它应用程序中使用宏所需要的编程技术,也就是说在其它程序中使用VBA。一般情况下你所建立的宏应该适用于同一类的文件,而且对这类文件能够完成一些通用性的设置工作。一.ExcelVBA应用(一).Excel中打印带标题的学生成绩单:在学校,学生的成绩单一般都用Excel来统计打印,因为Excel中提供了大量的公式和函数,方便进行各种计算。但到了设置打印学生个人成绩条时,就出现了问题,因为成绩单只有一个标题行,不能让每个学生的成绩条都有标题行(如表1)。表1表2通过比较以上两个表格,我们看出表2每个学生的成绩条都有标题行,下面我们就介绍如何轻松制作这样的表格。因为在Excel中学生的成绩是从第二行开始连续存放的,当打印出来以后,只有第一个学生的成绩条中有标题行,而下面的学生只能看到数字,而不清楚这个数字是什么科目,解决这个问题,我们可以用复制粘贴的方法,将第一行的标题行复制到每一个学生成绩行的上方,但是这个工作量是可想而知的,如果贵校有1000名学生,那你岂不是要复制粘贴1000次,如果学生数更多……(又要加班)下面我们来用刚才介绍的VBA来简化这一操作。在Excel中VBA的用法是,利用录制宏的方法来实现,先取得在Excel中这些复制粘贴操作的宏代码,再选择其中对我们有用的代码来构成我们需要的程序。1.操作要求:在空白的工作表sheet2中按顺序粘贴成绩表sheet1的标题行和第一个学生的成绩行。2.录制宏:打开成绩文件,执行菜单中的“工具—>宏—>录制新宏”,在sheet2工作表中按顺序粘贴标题行和第一个学生的成绩行,停止录制。再执行菜单中的“工具—>宏—>宏”对宏进行编辑分析和整理,如下:Sheets("Sheet1").Select'选取sheet1工作表Rows("1:1").Select'代表选定当前工作表中的行,括号中的是行参数,这里是标题行Selection.Copy'返回当前窗口中的选定对象,将选定的内容复制Sheets("Sheet2").Select'选取sheet2工作表Rows("1:1").Select'选定要粘贴的位置ActiveSheet.Paste'粘贴标题行Sheets("Sheet1").Select'选取sheet1工作表Rows("2:2").Select'选取成绩行(第一名学生)Selection.Copy'复制成绩行Sheets("Sheet2").Select'选取sheet2工作表Rows("2:2").Select'选定要粘贴的位置ActiveSheet.Paste'粘贴成绩行(第一名学生)通过上述代码,我们可以看出其工作原理是:先选取标题行,再复制标题行,然后选取要插入行的位置,再粘贴标题行,成绩行也是相同的操作。如此循环,一直到最后一个学生的成绩行粘贴好就完成了操作。3.分析整理代码:以上原理明白后,我们用程序实现这一过程,这个程序分为两部分,一部分用于实现将标题行粘贴到工作表sheet2的第1、3、5、7、9……行,另一部分用于实现将学生成绩行信息逐条粘贴到第2、4、6、8、10……行,以100名学生为例,代码如下:Sub完善成绩单()dimiasInteger'定义一个变量fori=1to100'循环100次,实际应用中要改为学生数Sheets("Sheet1").Select'选取sheet1,sheet1为学生成绩信息表Rows("1:1").Select'选取标题行Selection.Copy'复制标题行Sheets("Sheet2").Select'选取sheet2,sheet2为要打印的带标题行的学生成绩表Rows(i*2-1).Select'选取第1、3、5、7、9……行ActiveSheet.Paste'粘贴标题行Sheets("Sheet1").Select'选取sheet1,sheet1为学生成绩信息表Rows(i+1).Select'选取学生成绩行Selection.Copy'复制学生成绩行Sheets("Sheet2").Select'选取sheet2,sheet2为要打印的带标题行的学生成绩表Rows(i*2).Select'选取第2、4、6、8、10……行ActiveSheet.Paste'粘贴成绩行NextEndSub以上代码中,dim代表声明一个变量,Integer代表这个变量是一个整型变量;Sheets对象代表指定工作簿的工作表;Rows对象代表指定工作表中的行;Copy将指定对象复制到剪贴板;Paste将剪贴板中的内容粘贴到工作表的指定位置上;ActiveSheet返回一个对象,该对象代表活动工作簿中的活动工作表(最上面的工作表)。Fornext语句是循环语句,i是循环变量,它可以从一个值变到另外一个值,这种变化的两个相邻数值之间的差值由步长决定,这里默认为1,由此可以决定循环的次数。因为这里初始值为1,终值为100,所以从1到100一共循环100次,就是进行100次操作。编辑好这个宏后,以后要用到相同的设置,只要选择工具—>宏—>宏,运行这个宏,瞬间就完成了操作。如果学生的人数不一样,只要将100改变为需要的数就行了。也许有的读者说,这个应用是方便,在实际工作中有时要用到两次考试成绩比较的成绩单(如表3),怎样用ExcelVBA来实现呢?那么,下面我们就把上面的程序代码改进一下。(二).Excel中打印两次成绩比较成绩单:表3如表3,标题行下面有两次考试成绩的分数,这样两次考试成绩一目了然,便于掌握学生的学习情况。这就需要先在成绩表中做一些基础工作,成绩表中有三个工作表,月考成绩表、期中成绩表、比较成绩表,其中月考成绩表和期中成绩表的学生顺序要相同,这一点非常重要,否则生成的比较成绩表学生成绩是错的。排序可以用学号排序,也可以用姓名排序。下面是完整的VBA代码:Sub完善成绩单比较版()DimiAsInteger'定义一个变量Fori=1To100'循环100次,实际应用中要改为学生数Sheets("月考").Select'选取月考表,月考表为学生第一次考试成绩表Rows("1:1").Select'选取标题行Selection.Copy'复制标题行Sheets("比较").Select'选取比较表,比较表为两次考试成绩合并的成绩表Rows(3*i-2).Select'选取第1、3、5、7、9……行ActiveSheet.Paste'粘贴标题行Sheets("月考").Select'选取月考表,月考表为学生第一次考试成绩表Rows(i+1).Select'选取学生成绩行Selection.Copy'复制学生成绩行Sheets("比较").Select'选取比较表,比较表为两次考试成绩合并的成绩表Rows(3*i-1).Select'选取第2、4、6、8、10……行ActiveSheet.Paste'粘贴成绩行Sheets("期中").Select'选取期中表,期中表为学生第二次考试成绩表Rows(i+1).Select'选取学生成绩行Selection.Copy'复制学生成绩行Sheets("比较").Select'选取比较表,比较表为两次考试成绩合并的成绩表Rows(3*i).Select'选取第2、4、6、8、10……行ActiveSheet.Paste'粘贴成绩行NextEndSub以上代码的原理是,先复制第一次考试的成绩表标题行,粘贴到空表中,再依次复制每位学生的第一次考试成绩和第二次的考试成绩,按顺序粘贴到空表中,这样每位学生的两次考试成绩就合并到一张表里了。这样比较学生的学习情况就一目了然。其实,不光是Excel,在Word、PowerPoint中都可以用VBA和宏来完成许多简单重复性的工作,如果有编程基础的话,还可以实现许多有用的功能,这里就不再详述了。二.总结:以上,只是Office自动化处理在实际工作中的几个简单的应用,下面对VBA做一个简单的总结和概括:VBA究竟是什么?更确切地讲,它是VisualBasic程序设计语言和VisualBasic编辑器中的开发工具紧密地与应用程序集成在一起,集成的应用程序包括Word、Excel和PowerPoint等的编程环境。主要功能归纳为:1.定制VBA允许我们赋予自己喜欢的程序以新的功能,并且能够让它们完成一系列相同而又复杂的工作。2.自动化VBA可以使常用的Word、Exce

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论