版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、利用EXCELVBAt动判分随着IT技术的不断普及,以关系数据库为基础的管理系统在日常工作中得以广泛应用,各类管理系统的应用教学也逐渐成为高校专业课程教学的重要内容,但如何对该类教学结果进行判分成为一个难以解决的问题。目前较常见的解决办法有两种:一种是通过开发模拟考试软件进行判分,即虚拟某一管理系统的界面和功能,按指定步骤完成操作即判断得分;另一种是专门开发某一管理系统的判分软件,根据操作结果来判分。但这两种方法均存在开发不易、灵活性差的问题。本文拟以用友U8的凭证和科目总账为例,通过取自数据库中的数据,利用EXCELSVBA匹配学生结果和标准答案来完成这一判分过程。一、相关工作簿为完成自动判
2、分过程,设计了pf.xls、bz.xls和xs.xls三个工作簿,pf.xls为判分信息文件,bz.xls为标准答案,xs.xls为学生结果,三表结构如图1、图2、图3。1 .判分信息文件:pf.xls如图1所示,该工作簿仅有main工作表,A列为学生姓名,C:H列为判分信息,其中D列为需判分的数据库表名,F列为该项满分值,G列为该表标准答案的总行数,H列为该表中需判分的列号。2. 标准答案文件:bz.xls如图2所示,该工作箭中的工作表与pf.xls中的D列相对应,如本例中有gl_accsum和gl_accvouch两个工作表。各工作表中A列为姓名,B列为得分,C列为组合结果,从D列开始是取
3、自标准答案的数据库该表的内容,B和C列为空。3. 学生结果文件:xs.xls如图3所示,学生结果文件结构同标准答案文件,区别在于各表内容取自学生数据库该表的内容。二、判分过程4. 取标准答案和学生结果先根据pf.xls中D列中各表名,用SQL语句取出标准答案和学生结果形成bz.xls和xs.xls两个工作簿(因各系统数据平台各异,为节省篇幅,该部分程序略)。5. 处理标准答案将bz.xls中各表的内容根据操作结果进行调整,把不构成判分的行删除,有多种答案的情况增加相应行。将标准答案各表中判分总行数填入pf.xls的G列,该表总得分填入pf.xls的F列。如第2行的分数和得分点表示gl_accs
4、um的标准答案中有55行,占总分的40分。6. 设置分值、判分列和判分项将各表的判分列填入pf.xls的H列,以半角逗号间隔。如“凭证”所对应H3的值“e,f,h,u,w,x”,表示根据gl_accvouch表中这6列数据判断凭证结果的正确性。7. 用程序判分在pf.xls中按ALT+F11进入VBE窗口后输入判分程序代码,执行后在xs.xls中新增一张”判分”表,表中内容为各学生的分项得分和总分。结果见图4。三、判分程序代码Sub判分()dpi=ThisWorkbook.Path&""fmax=Sheets("main").Range(&quo
5、t;d65536").End(xlUp).Row'需判分表数xmax=Sheets("main").Range("a65536").End(xlUp).Row'学生人数Workbooks.OpenFilename:=dp1&"bz.xls"Workbooks.OpenFilename:=dp1&"xs.xls"WithWorkbooks("xs.xls")OnErrorResumeNextApplication.DisplayAlerts=False.S
6、heets("判分").Delete.Sheets.Add.Name="判分"'增加一张判分表,再次运行前需先把该表删除.Sheets("判分").Range("a1:a"&xmax)=Sheets("main").Range("a1:a"&xmax).ValueEndWithFori=2Tofmax'逐表判分WithWorkbooks("pf.xls").Sheets("main")SN=Trim(.C
7、ells(i,4).Value)'表名sc=Trim(.Cells(i,5).Value)'表中文名mf=.Cells(i,6).Value'单项满分数fs=mf/.Cells(i,7).Value'每一得分点分数gs=Trim("="&Replace(.Cells(i,8).Value,",","2&"&"""_"""&"&")&2)'替换后的公式EndWithWit
8、hWorkbooks("bz.xls").Sheets(SN)'生成各项标准答案.Range("c2:c"&.Range("a65536").End(xlUp).Row).Formula=gsEndWithWithWorkbooks("xs.xls").Sheets(SN)'用match()学生各表判分xsmax=.Range("a65536").End(xlUp).Row.Range("c2:c"&xsmax).Formula=gs.Rang
9、e("b2:b"&xsmax).Formula="=if(iserror(match(C2,bz.xls"&SN&"!$C:$C,0),0,1)"EndWithWithWorkbooks("xs.xls").Sheets("判分")用sumif()分项统计学生得分.Cells(1,i+1).Value=sc&mf.Range(Cells(2,i+1),Cells(xmax,i+1).Formula="=round(SUMIF("&SN&
10、amp;"!A:A,判分!A2,"&SN&"!B:B)*"&fs&",2)"EndWithNextiWithWorkbooks("xs.xls").Sheets("判分")用sum()汇总学生得分至判分表第2列.Cells(1,2).Value="总分".Range(Cells(2,2),Cells(xmax,2).Formula="=SUM(c2:z2)"EndWithWorkbooks("xs.xls").CloseSavechanges:=TrueWorkbooks("bz.xls").CloseSavechanges:=TrueEndSub四、本办法的优点1. 简单易用本办法主要利用EXCE匪找函数的功能进行判分,只要用VBA通过SQL语句将数据取到工作箭中,完
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年残疾人就业合同
- 2025年生鲜食品配送服务项目可行性研究报告
- 2025年全球贸易数字化平台建设项目可行性研究报告
- 2025年生物技术在环保领域应用项目可行性研究报告
- 2025年全球健康监测网络可行性研究报告
- 主人狗狗协议书
- 个人申请协议书
- 北京市2024全国政协办公厅直属单位招聘20人笔试历年参考题库典型考点附带答案详解(3卷合一)
- 软件测试职位面试常见问题
- 工程管理人员考试大纲及题库
- 高层建筑火灾风险评估与管理策略研究
- 综合管线探挖安全专项施工方案
- GB/T 37507-2025项目、项目群和项目组合管理项目管理指南
- 华为管理手册-新员工培训
- 社保补缴差额协议书
- 2025成人有创机械通气气道内吸引技术操作
- 2025年江苏省职业院校技能大赛高职组(人力资源服务)参考试题库资料及答案
- 东北农业大学教案课程肉品科学与技术
- 成都市金牛区2025届初三一诊(同期末考试)语文试卷
- 如何应对网络暴力和欺凌行为
- 现代技术服务费合同1
评论
0/150
提交评论