利用VBA实现网页中自动录入成绩

利用VBA实现网页中自动录入成绩


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条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信