VBA编程技术在家庭经济困难学生认定数据汇总中的应用
2020-10-21董娟
董 娟
(昆明冶金高等专科学校冶金与矿业学院,云南 昆明 650033)
0 引 言
党的十九大报告指出,要“健全学生资助制度,使绝大多数城乡新增劳动力接受高中阶段教育、更多接受高等教育”[1]。2017年4月,教育部办公厅印发了《关于开展“全国学生资助规范管理年”活动的通知》(教财函〔2017〕27号)[2],明确要求各高校要“建立学生资助档案管理制度,规范学生资助档案的收集、整理、保管、使用与销毁等工作,探索学生资助档案管理电子化”。家庭经济困难学生认定数据电子化,成为新时期学生资助工作的重要内容[3]。
由于信息管理安全性和准确性需要,学工系统困难学生管理权限并没有下放给学院辅导员和申请学生,申请家庭经济困难学生认定的学生信息需要用Excel表格汇总,按班级提交给学院辅导员,辅导员汇总班级表单形成学院汇总表单上交学校学生处资助管理中心。现有的家庭经济困难学生认定工作信息采集流程如图1所示。数据从学生填写到最终上传提交至学工系统,人为参与过程较多,存在数据校验、数据审核、数据汇总等环节工作量大、数据准确性不能保证等现实问题。采用信息化办公技术提升信息正确性、减少工作量,提高学院无纸化办公水平的问题亟待解决。
图1 家庭经济困难学生认定信息采集流程图 Fig.1 Flow chart of identification information collection for students from poor families
1 VBA编程技术介绍
Office软件是目前应用最为成功的办公软件,其中Excel可以提供数据统计、汇总等功能。VBA(Visual Basic for Applications)是建立在Office中的一种应用程序开发工具,可以有效扩展Excel功能,设计和构建人机交互界面,打造自己的管理系统,帮助Excel用户更有效地完成一些基本操作任务[4-7]。
VBA编程技术宏命令可以实现数据检查报警、多表格数据汇总功能,加速日常编辑和格式设置,组合多个命令,使对话框中的选项易于访问,实现一系列复杂任务自动执行等[8-10]。具体功能包括:1)使重复的任务自动化;2)自定义Excel工具栏、菜单和界面;3)简化模板的使用;4)自定义Excel使其成为开发平台;5)创建报表;6)对数据进行复杂的操作和分析[10]。
2 基于VBA编程技术的数据汇总功能设计及实现
使用VBA编程技术开发数据汇总功能主要包括数据表目录添加、判断目录是否正确、汇总数据等基本功能,功能流程图如图2所示。项目设计实施过程包括设计数据表和汇总表表头标题行、搜集各班数据、采用VBA编程技术研究各项功能实现、进行程序测试、检查程序测试是否正常、汇总数据和进行数据上报等,项目设计实施流程图如图3所示。
图2 功能流程图Fig.2 Functional flow chart图3 项目设计实施流程图Fig.3 Project design and implementation flow chart
2.1 应用条件分析
本案例中要求汇总某高职院校49个班级的家庭经济困难学生认定班级初审表,文件名称含班级名称,工作表主体部分从学校学工系统导出模板,根据实际情况添加班级和学生联系电话列。表头结构格式固定、统一,数据均填写在工作簿第一页工作表中。各班的人数不同,每个班通过班级初审人数不同,即每个表格中的数据记录行数不同,但每个学生填写的数据项相同。通过VBA数据汇总功能实现对49个文件的汇总,即输入49个文件存放的目录,逐一打开表格,复制文件中的初审数据,粘贴到汇总表中,如图4所示。
2.2 VBA编程实现数据汇总
2.2.1 设计思路
在使用VBA编程实现数据汇总的过程中,加入窗体控件的交互设计,使程序适用性更强,使用更方便。具体设计思路如下。
1)准备工作。将49个班级上报的工作簿存放于一个文件夹中,汇总工作簿(XX学校XX学院家庭经济困难学生认定班级初审VBA数据汇总.xls)放在其他文件夹下,将设计好的表头标题行拷贝到汇总工作簿第一个工作表第一行。汇总工作表和49个班级初审数据文件表头标题行一致,分别为:序号、学号、姓名、班级、困难生等级、认定原因、认定学生手机号、备注。
2)汇总文件路径参数传递。用户能通过文本框输入49个班级初审文件所在文件夹路径,点击窗体控件上的“写入汇总数据目录”按钮将文件夹路径参数写入程序。
3)数据汇总。用户点击“数据汇总”按钮,程序即开始依次读取指定文件夹中所有xls或xlsx文件中的数据并顺序存储到汇总表中,点击“数据汇总”按钮,调用模块函数SummaryData汇总数据。这是VBA编程主要部分,主要过程为:程序读取用户输入的文件存放路径,根据文件夹路径遍历文件夹下的每一个xls或xlsx文件,依次打开工作簿,复制工作簿的第一个表中除第一行标题行以外的所有数据并粘贴到汇总文件中A列即第一列没有数据的区域内。直到将所有文件的数据复制到汇总表中。
4)清除汇总内容。为了方便用户多次汇总,设置了清除汇总内容按钮。当点击清除汇总内容按钮,程序自动将汇总表表头标题行以下的所有数据删除,此时再点击汇总数据按钮程序仍能自动汇总指定目录下的xls或xlsx文件。
2.2.2 界面控件设置
在汇总表第一个工作表中设计一个开始数据汇总命令按钮,命令按钮名称属性:SummaryDataBegin,点击该按钮后弹出数据汇总窗口属性名称:UserForm_SummaryData,数据汇总窗口设置一个文本框,名称属性为:TextBox_FilePath。4个命令按钮名称属性分别为:CommandButton_writePath,CommandButton_SummaryData,CommandButton_clearData,CommandButton_Close。界面控件布局如图5所示。
图5 程序界面布局图 Fig.5 Program interface layout
2.2.3 主要过程、函数代码功能
1) 点击开始数据汇总按钮,打开数据汇总窗口代码如下:
Private Sub SummaryDataBegin_Click()
UserForm_SummaryData.Show
End Sub
2)数据汇总通过文本框输入汇总文件路径,点击写入汇总数据目录,程序获得数据文件目录参数,点击汇总数据,调用SummaryData模块函数汇总49个班级的初审数据。
写入汇总数据目录代码如下:
Private Sub CommandButton_writePath_Click()
dataPath = TextBox_FilePath.Text
If Dir(dataPath, vbDirectory)=“” Then
‘判断文件路径是否存在
MsgBox“您输入的文件路径有误请重新 输入!”
Else
MsgBox“请核对您输入的文件路径,若正确请点击汇总数据按钮汇总数据,若不正确请 重新输入。” & dataPath
End If
End Sub
汇总数据调用程序如下:
Private Sub CommandButton_SummaryData_Click()
Call 合并工作簿.SummaryData
MsgBox“数据汇总已完毕!谢谢使用!”
SummaryData模块函数如下:
Public dataPath As String
Sub SummaryData()
Dim myfile, mypath,wb ‘声明变量
Application.ScreenUpdating = False ‘关闭屏幕更新
ActiveSheet.UsedRange.Offset(1, 0).Clear ‘清除当前表头之外的所有内容
mypath = dataPath
myfile = Dir(mypath & “〔.xls*”) ‘遍历班级文件夹下的Excel文件
Do While myfile <>“” ‘当找到的文件不为空时
If myfile <> ThisWorkbook.Name Then ‘当找到的文件不是当前Excel工作簿时
Set wb = GetObject(mypath & “” & myfile) ‘得到Dir找到的工作簿的内容,设 为wb
With wb.Sheets(1) ‘对找到的工作簿的sheet1进行操作
UsedRange.Offset(1, 0).Copy ActiveSheet.Range("A" &
ActiveSheet.UsedRange.Rows.Count + 1)
‘复制wb的sheet1除第一行的所有内容到当前工作表
End With
wb.Close False ‘关闭wb工作簿且不保存
End If
myfile = Dir ‘寻找下一个Excel工作簿
Loop
Application.ScreenUpdating = True '恢复屏幕更新
End Sub
3)点击清除汇总数据按钮清除汇总数据,代码如下:
Private Sub CommandButton_clearData_Click()
ActiveSheet.UsedRange.Offset(1, 0).Clear ‘清除当前表头之外的所有内容
MsgBox“汇总数据已清除,谢谢使用!”
End Sub
4)点击关闭按钮关闭汇总数据窗口,代码如下:
Private Sub CommandButton_Close_Click()
Unload Me
End Sub
3 结 语
高职院校家庭经济困难学生资助工作任务重、责任大,传统的学生信息采集采用手工录入、人员检查、手动复制粘贴汇总表格的方式存在很多问题,难以高效准确地完成信息采集和汇总任务。通过Excel VBA编程技术实现的数据汇总功能,减少了人为操作过程中的失误,降低了工作人员工作量,提高了数据汇总质量。该方法有效提高了辅导员工作效率,提升了学校办公信息化技术水平,对高职院校家庭经济困难学生认定工作从业人员具有很好的推广价值。