基于excel vba的多考场电子成绩自动统计

基于excel vba的多考场电子成绩自动统计

ID:31359219

大小:106.50 KB

页数:5页

时间:2019-01-09

基于excel vba的多考场电子成绩自动统计_第1页
基于excel vba的多考场电子成绩自动统计_第2页
基于excel vba的多考场电子成绩自动统计_第3页
基于excel vba的多考场电子成绩自动统计_第4页
基于excel vba的多考场电子成绩自动统计_第5页
资源描述:

《基于excel vba的多考场电子成绩自动统计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、基于ExcelVBA的多考场电子成绩自动统计  摘要:随着计算机技术的飞速发展,高校本科课程考核方式的改革,诸多高校已从传统的纸质试卷考核转为无纸化考核,减少了教师工作量,极大地提高了教师的工作效率。然而,若要对一门课程多考场的许多Excel表格中的成绩进行相关统计,全靠人工手动计算不仅耗时耗力,而且还容易出错。为此,利用ExcelVBA方便、灵活、功能强大等特点实现多张表格成绩的自动整合与统计,简化了教师的工作,提高了效率。  关键词:ExcelVBA;电子成绩;自动统计  中图分类号:TP393文献标识码:A文章编号:1009-

2、3044(2016)15-0218-02  1引言5  在高校日常教学中,课程考核占据十分重要的地位,是教学中必不可少的环节,根据考核可以检查课程制定的目标是否实现了教育目的,可以准确地判断出学生掌握课程的程度,以方便课程教学设计的有效改进[1]。鉴于传统纸质试卷考核的出卷、阅卷、统计分析成绩工作量大等诸多不足,许多高校采用无纸化上机考核方式,全部计算机阅卷,减轻了教师的工作[2]。然而,对于像大学计算机这种全校性质的公共课程的考核,因为人数较多,机房有限,机器数量有限,往往组织一场考试是不够的,需要组织多场考试,而每一场考试后都会

3、生成一份本次考试的电子成绩。若想了解所有考生本次考试的情况,并对所有学生的各分数段的人数进行统计分析,需要将各个考场的数据进行整合。如果Excel表格的数量不多,人工统计无妨;如果数量较多,完全手工统计,不仅耗时耗力,而且易出错。  为了解决上述问题,将教师从繁重的手工劳动中解放出来,可采用Excel作为系统编写工具,Excel自带的系统开发工具VBA(VisualBasicforApplicatio)方便、灵活、功能强大等特点,可以直接对Excel对象进行编程[3],实现多张电子表格成绩的自动整合,大大简化了教师的工作,提高了其工

4、作效率。  2电子成绩原始数据收集  2.1原始数据收集  由于各高校采用无纸化考核的工具不同,因此每一次考试产生的电子成绩的文件类型也可能不同,可能是.txt,.xls/x或.doc/x等不同类型的文件。本文编写的程序只针对.xlsx格式的文件,若考试成绩的文件类型非.xlsx格式,需要将成绩数据保存在.xlsx格式的文件中。  2.2数据预处理  新建Excel工作表,将文件类型改为xlsb格式的文件,取名为“整合各表工具”。将各考场的excel成绩表以及xlsb文件放到同一路径下,xlsb格式的文件中会呈现具体的代码。  3各

5、考场成绩的统计  3.1用VBA代码实现各表的整合  打开.xlsb格式的文件,按快捷键Alt+F11打开编写代码的环境,插入模块,在模块中编写代码,具体代码如下:  Sub整合各表()5  thispath=ThisWorkbook.Path'指当前工作薄的路径  DimSAKfileAsString’定义程序执行时读取当前表的文件名  SAKfile=Dir(thispath&"\*.xlsx")’文件名获取的方式是当前路径下.xlsx格式的文件名  DoWhileSAKfile""’判断文件名不为空的时候执行循环  IfSAK

6、fileThisWorkbook.NameThen  DimmAsLong  SetSAK=Workbooks.Open(thispath&"\"&SAKfile)’顺次打开当前路径下.xlsx格式的文件  SetSAKsheet=SAK.Worksheets(1)  m=SAKsheet.Range("A1048576").End(xlUp).Row’该变量为打开的表中最后一行的行数  SBKtemp=ThisWorkbook.Worksheets(1).Range("A1048576").End(xlUp).Row’该变量为当前

7、写程序的工作薄的第一张工作表中最后一行的行数  SAKsheet.Range("a2:d"&m).Copy‘复制各考场的成绩数据  ThisWorkbook.Worksheets(1).Range("a"&(SBKtemp+1)&":d"&(SBKtemp+m-1)).PasteSpecial(xlPasteValues)’粘贴到汇总表中  Application.CutCopyMode=False‘清空剪贴板中的数据  ThisWorkbook.Saved=True‘保存程序文件  SAK.Close’关闭打开的excel表5  

8、EndIf  SAKfile=Dir  Loop  EndSub  代码编写完之后,在代码窗口按F5执行程序,或点击视图→宏,执行即可。  3.2统计各分数段的人数  根据上述整合数据的结果,可以使用Frequency()函数快速统计

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。