2024年6月5日发(作者:)
2010年8月
安庆师范学院学报(自然科学版)
Aug.2010
第16卷第3期
Journalof
Anqing
Teachers
College(Natural
Science
Edition)
VOI.16NO.3
利用
VBA
实现网页中自动录入成绩
江治1,2
(1.华东师范大学信息科学技术学院,上海200241;2.温州大学物理与电子信息工程学院,浙江温州325035)
擅要:VBA是Office系列软件内嵌的通用编程语言,用于定制和扩展Office的功能。本文利用Excel中的VBA
进行二次开发编程,实现了将保存在Excel文件中的成绩自动录入到信息管理系统登记成绩的页面的功能,并给出了详
细的实现过程。该程序操作简便。自动录入迅速,解决了教师手工输入速度慢且容易出错的问题,具有一定的实用价值。
关键词:VBA;OLE;自动录入
中图分类号:TP311文献标识码:A文章编号:1007—4260(2010)03--0124--04
0
引言
21世纪是个高度信息化的社会,信息化已经渗透到高校教学、科研、管理的各个方面。各高校在不
同程度上都采用了现代化的信息管理技术,各项资料除必需的纸质材料外,均采用电子化管理。网上选
课、成绩查询等系统,在各高校已普及,这些系统在提高了办事效率,方便学生选课、查询成绩的同时,也
给任课教师带来一些不便。如对于查询成绩系统,教师必须通过录入页面,将学生各门课成绩从已打好
的电子版成绩中手工逐个输人到信息管理系统。对于学生人数较多的教师,这是一项非常繁琐而容易
出错的重复工作。目前大多数电子版成绩都是使用Excel来保存,本文就以ExcelVBA为例,介绍如
何编程实现将Excel现有数据自动录入到信息管理系统的成绩登记页面。
1设计语言VBA简介
VBA(VisualBasicfor
Application)是微软公司开发出来的一种通用的Office自动化语言,它嵌入
在Office各个套件中,用于定制和扩展Office的功能,可以大大提高Office的功用。由于采用了用于
开发应用程序的Basic语言,因此在编程方法、对象使用上它与VisualBasic完全相同,用户易学易用,
很容易掌握。在使用Office系列软件办公时,经常会遇到一些重复性的工作,特别是在处理大批量的
文档时,手工操作耗时费力,而通过VBA编写宏来处理文档,将使这些工作完全自动化。
2程序相关对象
2.1
VBA对象
对象代表应用程序中的元素,比如工作表、单元格、图表、窗体或是一份报告。在VBA的代码中,
在使用对象的任一方法或改变它的属性之一的值之前,必须去识别对象。例如VBA中最高级对象是
Application对象,在Application对象中包含了一些其他的对象集合(如Document,Windows,Selec—
tion,CommandBars等),下面的代码在应用程序中创建Microsoft
Excel工作簿对象,然后在Microsoft
Excel中打开工作簿。
Set
xl=CreateObject(”Excel.Sheet”)
x1.Application.Workbooks.Open”newbook.xls”
2.2
0LE对象模型
*收稿日期:2009—12—09
作者简介:江治,男,江西抚州人,华东师范大学信息科学技术学院在职硕士,温州大学物理与电子信息工程学院讲师,研究
向;计算机应用。
第3期江治:利用VBA实现网页中自动录入成绩
125
OLE对象模型是Microsoft的一项技术,它允许在一个应用程序中使用另外一个应用程序的命令
和功能,允许通过引用另一个应用程序的对象属性和方法来返回编辑和输出数据。
通过OLE自动化,使我们在开发新的应用程序时可以“借用”现成的应用程序的部分或全部功能,
从而大大减轻开发的工作量,缩短开发周期,使开发工作事半功倍,这就是OLE自动化带给开发人员
的好处,例如VBA中CreateObject函数,通过这个函数我们可以实现对支持OLE对象模型的应用程
序的引用。下面的代码将创建对一个MicrosoftExcel电子数据表的应用并将其赋给对象变量Ex—
eelSheet。
DimExcelSheetAs
Object
Set
ExcelSheet=CreateObject(”Excel.Sheet”)
3程序主要代码
3.1创建工具栏按钮
定义模块1的子程序AddBar(),创建“成绩管理”工具栏,便于教师操作。实现代码如下
Sub
Addbar()
DimToolsName
as
String
ToolsName=”成绩管理”
OnErrorResumeNext
Application.CommandBars(ToolsName).Delete
7防止多次安装工具栏,先删除
Set
gJ=Application.CommandBars.Add(Name:=ToolsName,Position:=msoBarTop,
Temporary:=True)’创建“成绩管理”临时的工具栏,退出Excel时会自动删除
Set
mCommand=gJ.Controls.Add(Type:=msoControlButton,ID:=2949)
With
mCommand
.Caption一”自动填写成绩”
.Style=msoButtonCaption
.OnAction=”StartFill”
End
With’为“成绩管理”工具栏,添加一个“自动填写成绩”工具按钮
gJ.Visible—True
MsgBox”建立工具栏完成”
End
Sub
3.2
自动录入成绩
as
定义模块1的子程序AutoFill(colString),将Excel电子版成绩表中选中的一列成绩数据填充
到网页对应col列(col取值为ps、qz、qm或sy)的一列文本框。网页成绩录入界面如表1所示。表1中
的各项成绩列需要录入成绩,其它列由信息管理系统计算填充内容,其单元格中的DataGridl—ctl2一KX
(xx为ps,qz,qm或sy)表示网页中用于输入成绩的文本框在Html代码中的名字。
表1现代教学管理信息系统成绩录入页面
实现代码如下:
SubAutoFill(colAs
String)
Set
Set
oshell=CreateObject(”shell.application”)’创建shell对象
OW=oshell.Windows()
7创建shell窗El对象OW
126
安庆师范学院学报(自然科学版)
2010年
found=False’没有找到教学管理系统录入成绩的页面
OnErrorGoTo
errhand
Fori=0ToOW.Count一1
7检查所有已打开的窗口
nm=UCase(ow.Item(i).FullName)
’如果不是网页窗口,则跳过当前窗口,检查下一个(只检查IE和Maxthon浏览器)
If
InStr(nm,”IEXPLORE.EXE”)=0And
InStr(nm
oTo
,”MAXTHON.EXE”)=0
Then
G
PASS
If
If
OW.Item(i).document.Title<>”现代教学管理信息系统”Then
Len(ow.Item(i).document.body.innertext)<1000
GoToPASS
ThenGoToPASS
no=1
found=True’找到教学管理系统录入成绩的页面
’将Excel电子版成绩当中选中的一列成绩逐个填人到录入页面对应列的文本框,
ForEach
r
InSelection
nO=no+】
ID=”DataGridl
ctl”&no&If—tl&col
ound(r.Value,0))
OW.Item(i).document.getElementByld(ID).Value=
Str(R
Next
PASS:
Next
IfNotfoundThen
UserForml.Hide
ExitSub
errhand:
ResumePASS
EndSub
MsgBox”请打开成绩录入网页”
’程序主界面
3.3其它代码
定义模块1的子程序StartFill(),显示程序窗口
Sub
StartFill()
UserForml.Show
EndSub
图1
程序窗口UserForml界面如图1,主要包括程序初始化代码和“开始”按钮代码。
PrivateSub
AutoFill
EndSub
Commandl—Click()‰开始”按钮代码,调用AutoFill开始自动录入
Right(Listl.Text,2)
PrivateSub
Listl一D
ancelAs
MSForms.ReturnBoolean)
blClick(ByVal
C
Commandl..Click
EndSub
PrivateSubUserForm
Initialize()程序初始化
Listl.Addhem”平时成绩ps”
Listl.Addltem”期中成绩qz”
Listl.Addltem”期末成绩qm”
Listl.Addltem”实验成绩sy”
第3期
EndSub
江治:利用VBA实现网页中自动录入成绩
127
4结束语
本文实现了利用VBA在教学管理系统成绩录入页面中自动登记成绩,帮助教师避免了重复繁琐
易错的手工录入工作,受到许多教师好评。使用该程序前,须先打开电子版成绩的Excel文件,将要自
动填充到一列成绩选中,再单击“成绩管理”工具栏中的“自动填写成绩”按钮,在随后弹出的窗口列表中
选择要填充到录入页面的成绩。程序还有许多未完善的地方,在自动录入的过程中并没有验证要录入
的数据是否是录入页面对应学号的成绩,有需要的读者可以自行加上相应验证的代码。
参考文献:
113刘宇.Excel高效办公——VBA入门与实战[M].北京:人民邮电出版社,2006.
Ez]马维峰.ExcelVBA应用开发从基础到实践[M].北京:电子工业出版社,2007:I一30.
[3]黄玉,詹文法.基于VBA的试卷质量分析的设计[J].安庆师范学院学报:自然科学版,2007(04):67—70.
esult
in
the
W
BA
Register
R
ebpage
AutomaticallybyUsing
V
JIANG
Zhi
(EastChinaNormal
of
of
University,College
ofInformationScienceand
Technology,Master
Science,Shanghai。200241;Wenzhou
University,College
325035)
Physics&ElectronicInformation
Engineering.Zhejiang
Abstract:VBAis
a
common
beddedinOffice,whichisused
programminglanguage
em
uses
to
customizeand
expand
the
thefunction
functions
ofOffice.Inthis
article,the
authorVBAinExcel
filesinto
tO
redevelop
programming,whichachieves
of
inputtingautomatically
agement
the
resultssavedin
also
explains
such
as
theExcel
the
page
forresults
registration
inthe
InformationMan—
System。and
theauthorhowthe
process
isachievedindetails.The
programissimple
and
rapid
in
slowness
and
automatic
input,solving
the
ticalvalue.
problemserror—prone
of
manual
input.Theprogram
isofcertain
prac—
ords:VBA;OLE,recordautomatically
Key
w
(上接第120页)
术实验都能得心应手。以“虚拟项目”为中心的教学模式贯穿了“边学边用,边用边学”的理念,让学生在
学习中找到乐趣,在乐趣中进行学习;以“虚拟项目”为中心的教学模式也培养了学生独立的分析问题、
解决问题的能力。实践证明,这种教学模式对提高模拟电子技术课程教学质量,培养学生创新能力,推
进质量工程建设有着重要的意义。
参考文献:
E1]康华光.电子技术基础(模拟部分)[M].高等教育出版社,2006;121—126.
[2]蒋宏.模拟电子技术教学改革模式探索[J].电气电子教学学报2008,30(3):4—5.
[3]杨素行.模拟电子技术基础简明教程I-M].高等教育出版社,2006:58—61.
ode
in
A
Teaching
M
nalog
Electronic
Technique
by
Dummy
Item
DING
Xiao-gui,QIANMeng
(Department
of
Computer
and
Information,Anqing
Teachers
College,Anqing
246133)
Abstract:Analog
iththenew
place
w
posed
The
with
Electronic
Technique
inthis
contents
is
one
ofthebasic
courses
ofelectricalinformationscience.Inorder
courses,the
to
keep
development
teaching
field,cultivate
and
optimizing
which
set
innovativestudentsand
teaching
promoteabilityrefortlx
are
ispro—
modifying
are
schedule.Dummy
item
teaching
methods
adopted.
students
to
drivenwith
dum
s
my
item
upby
teacher.Practiceshowsthe
students’abilities
are
obviously
improved
Key
get
across
theoryresearch,practice
andinnovation.
words:dummyitem,assignment
drive,teaching
reform
发布者:admin,转转请注明出处:http://www.yc00.com/web/1717559719a2740253.html
评论列表(0条)