APP下载

基于ExcelVBA的单独招生录取查询统计系统的开发

2017-03-31刘德飞周利平赵磊李奎

科技资讯 2016年32期

刘德飞++周利平++赵磊++李奎

摘 要:ExcelVBA是Excel基于VB开发的脚本语言。它具有强大的Excel使用扩展功能,完全可实现Excel中的查询统计;同时可提高办公中Excel的使用效率。单独招生录取查询统计仅是招生录取中一个小环节,没有必要使用较高成本开发系统软件实现查询统计功能。ExcelVBA可在查询中大大提高工作效率,实现多人共同统计,设计和开发该系统对ExcelVBA的扩展运用有一定的探索实践作用。

关键词:ExcelVBA 单独招生录取 查询统计 查询系统 统计系统

中图分类号:TP311 文献标识码:A 文章编号:1672-3791(2016)11(b)-0017-02

1 问题背景

云南机电职业技术学院位于云南昆明,是一所以机电专业为主要培养对象的高职院校,被评为“云南省省级示范性高等职业院校”与“国家示范性高等职业院校”的骨干高职院校,具备云南省单独招生资格,报考考生较多、竞争激烈,因此做好考生的招生服务显得更为重要。

考生通过笔试、面试后学院会将名单通过单独招生考试网发布给各位考生;因考生可以同时报考多所学校,所以必须由考生确认是否选择该校就读,并通过传真的方式回传到学院招生就业办公室,通过传统的统计、收集Excel、逐个查询录入系统;当考生需要查询时,又返回查询。具有工作量大、效率不高、不易查询等特点,又因为就招生这个小环节还没有必要开发大型系统进行查询统计,所以笔者探究用ExcelVBA的同一界面完成两项功能,期望完成对传统查询的改善,提高工作效率。

2 ExcelVBA简介

在Office对于一些烦琐、重复的操作,用户可以通过“宏”来实现。“宏”是由一系列指令组合而成的命令集,其本质是VBA代码组成的程序。VBA是微软在其开发的应用程序中共享的通用自动化语言。

Visual Basic for Applications(VBA)是Visual Basic的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程式功能,特别是Microsoft Office软件。也可说是一种应用程式视觉化的Basic脚本。该语言于1993年由微软公司开发的应用程序共享一种通用的自动化语言——Visual Basic For Application(VBA),实际上VBA是寄生于VB应用程序的版本。微软在1994年发行的Excel5.0版本即具备了VBA的宏功能。

3 系统设计思路

系统开发一般由以下几个步骤组成:问题分析、需求分析、软件设计、程序编码、软件测试组成。

由于笔者是系统的使用者和开发者,常年从事招生工作,熟悉该校招生中会出现的一些问题和需求。在设计和编码阶段通过积极思考,如果使用过程中出现错误完全可实时进行调试和测试。该文仅从实现系统的一些核心模块进行设计,更好地实现预期效果。主要核心设计模块如下。

4 系统模块开发与实现

4.1 前台界面的设计与实现

准考证号文本框及查询按钮,用于识别考生个人信息。点击查询按钮可通过对Excel表格数据的查询,显示考生的姓名、性别、考分,拟录取专业和是否收到传真,逐一进行核对。

当收到考生传真时,在“是否就读”的文本框输入“是”或“否”,点击“确认”按钮以确认对考生传真的收取。

点击“清除”按钮可以清空文本框内容,也可以修正一下信息。图1是前台设计显示效果。

4.2 两个主要模块的源代码

4.2.1 查询模块

Public Sub find_Click()

Dim rng As Range

With ActiveSheet

For Each rng In [b2:b1819] //查询数据的范围

If rng.Text = tzkzh.Text Then //比对准考证号给相关的内容显示信息

xzkzh1 = tzkzh.Text

xm1 = rng.Offset(0, 1).Text

xb1 = rng.Offset(0, 2).Text

mscj1 = rng.Offset(0, 3).Text

kf1 = rng.Offset(0, 3).Text

pm1 = rng.Offset(0, 4).Text

lqzy1 = rng.Offset(0, 5).Text

sfjd1 = rng.Offset(0, 6).Text

bz1 = rng.Offset(0, 7).Text

lxdh1 = rng.Offset(0, 11).Text

time1 = rng.Offset(0, 8).Text

tj1 = rng.Offset(0, 9).Text

End If

Next

End With

End Sub

4.2.2 確认统计模块

Private Sub confirm_Click()

Dim rng As Range, rng1 As Range, m As Integer, n As Integer, k As Integer, l As Integer

With ActiveSheet

For Each rng In [b2:b1890] //查询范围

If rng.Text = tzkzh.Text Then

rng.Offset(0, 6) = sfjd1

rng.Offset(0, 7) = bz1

rng.Offset(0, 8) = Now

rng.Offset(0, 9) = tj1

End If

Next

If Len(sfjd1.Text) And Len(tj1.Text) > 0 Then

MsgBox "输入正确"//进行数据较验

Else

MsgBox "确认时是否就读或是否服从调剂不能为空值"

End If

For Each rng1 In [h2:h1890] //数据统计的实现

If rng1 = "是" Then

m = m + 1

ElseIf rng1 = "否" Then

n = n + 1

Else

k = k + 1

End If

Next

Label17 = m

Label18 = n

wfcz1 = k

End With

End Sub

5 结语

通过设计基本解决了提出的问题,同时还具备以下几个优点。

(1)无需安装数据库。巧妙地把Excel表格中的数据作为原始数据,操作方便、使用便捷、易于不太熟悉计算机的使用者单机使用。

(2)友好输入界面。界面具有良好的互动性和纠错功能,防止输入错误并纠错,实践证明比实际在Excel中录入数据的效率提高了。

当然在使用中也存在一些不足,鉴于ExcelVBA的局限性,功能还算是很强大。笔者也将继续努力在后期不断完善,力争把ExcelVBA的功能在工作中做更多扩展。

参考文献

[1]何非,叶萃娟.Excel VBA高效办公从入门到精通[M].北京: 中国青年出版社,2008.

[2]罗刚君.Exclel VBA程序开发自学宝典[M].北京:电子工业出版社,2009.