Excel之VBA应用例举

时间:2022-10-02 03:33:05

Excel之VBA应用例举

摘 要:Microsoft office Excel,是一款办公室工作人员常用的办公软件。在应用此软件时,可能会经常进行例如复制粘贴等一些重复的操作,对于一些重复性的操作,可以应用寄生于Excel中的VBA(Visual Basic for Applicattion)语言编写程序模块,使重复的任务自动化,从而提高工作效率。

关键词:Excel VBA 工作效率

一、问题的提出

现在多数高中学校的考试阅卷方式为网上阅卷,而多数阅卷系统在阅卷结束后导出的成绩数据文件为Excel工作簿。以我校2011级(高三年级)为例,该年级共有32个班级,其中文科12个班级、理科20个班级,全学年要进行8次月考,每次月考阅卷完毕,系统会导出一个Excel工作簿文件,12个文科班的成绩存放在一张工作表中,20个理科班的成绩存放在另一张工作表中。最终需要把各班的成绩分离出来,使每个班级的成绩保存在一个独立的Excel工作簿文件中,然后分发给各班。若每次采用复制粘贴的方法完成成绩的分离任务,将耗时2个多小时。下面是笔者针对我校2013级9月份月考成绩数据文件“ykcj9月份.xls”(保存文科班成绩的工作表名为“文科成绩”,保存理科班成绩的工作表名为“理科成绩”。两个工作表中的数据排序方式均以第三列“班级”为关键字升序排列),运用VBA语言编写的程序模块,运行它在几分钟内就可以把各个理科班的成绩分离出来。

二、程序模块

Sub flcj( )

Dim i, j, m As Integer

Dim c As String

Windows(“ykcj9月份”).Activate

Sheets(“理科成绩”).Select

Rows(1).Select

Selection.Copy

下面是建立20个工作簿文件,用于保存各班成绩,并复制粘贴标题行。

For i = 1 To 20

Workbooks.Add

Windows(“book” & i).Activate

Sheets(“sheet1”).Select

ActiveSheet.Paste

Next i

下面是把1213名理科学生的成绩数据按班级分别保存在“d:\ 2013级9月份月考”文件夹中,各班级的文件名为班级名称,如“01班”、“02班”等。

Windows(“ykcj9月份”).Activate

Sheets(“理科成绩”).Select

c = Cells(2, 3)

j = 1

m = 1

For i = 2 To 1214

If c Cells(i, 3) Then

Windows(“book” & j).Activate

ChDir “d:\20139级月份月考”

ActiveWorkbook.SaveAs Filename:=“d:\ 20139级月份月考\” + c + “班”

j = j + 1

m = 1

Windows(“ykcj9月份”).Activate

Sheets(“理科成绩”).Select

c = Cells(i, 3)

End If

Rows(i).Select

Selection.Copy

Windows(“book” & j).Activate

Sheets(“sheet1”).Select

m = m + 1

Range(“A” & m).Select

ActiveSheet.Paste

Windows(“ykcj9月份”).Activate

Sheets(“理科成绩”).Select

Next i

Windows(“book” & j).Activate

ChDir “d:\ 2013级9月份月考”

ActiveWorkbook.SaveAs Filename:=“d:\ 2013级9月份月考\” + c + “班”

j = j + 1

End Sub

三、程序说明

以上代码是把“理科成绩”工作表中包含的20个班级成绩分离出来,并各自保存为一个工作簿文件。若要把“文科成绩”工作表中包含的12个班级成绩分离出来,只需作些修改即可。另外,在运行程序模块之前,要确保成绩数据表中的数据排序方式为按班级升序或降序进行排列。

上一篇:浅谈农村英语教学现状的改进策略 下一篇:浅谈高中语文教学中情感教育的应用