Excel电子表格软件是应用最广泛的软件之一,其数据处理、图表功能以及各种功能和工具深受用户喜爱。Excel文件是一个工作簿,一个工作簿最多可以包含255个工作表,每个工作表可以包含大量数据。
Excel强大的优势在于其宏语言Visual Basic for Application (VBA)。Visual Basic是windows环境下开发应用软件的通用编程语言,功能强大,使用方便。VBA是VBA的子集,可以广泛应用于微软公司开发的各种软件,如Word、Excel、Access等。
那么,浅谈“宏观”
在Excel 97中,“宏”是一个不可理解的概念,但对于一个具体的“宏”,很容易理解。如果‘把一段文字改成‘粗体’,字体大小为‘3号’,就可以认为是‘宏’,那么‘宏’就不难理解了。其实Excel 97中很多操作都可以是一个
‘记录宏’实际上是记录工作的一系列操作结果,并命名存储(相当于VB中的一个子程序)。在Excel 97中,‘记录宏’只记录操作结果,不记录操作过程。例如,当更改文本的字体时,您需要打开“字体”列中的下拉列表并选择另一种字体,然后文本将成为所选字体。这是一个过程,结果是把选中的文字变成选中的字体。而“记录宏”只记录“将所选文本更改为所选字体”的结果。
Excel 97中的工作表是由行和列组成的二维表格。我们可以通过系统提供的语句activesheet.cells(I,j)取出当前工作表中第一行和第一列所在单元格中的数据(或者填充到指定的单元格中),然后将其放入定义的数组中。此时,我们可以对它执行各种操作,例如计算平均分数、总分数、分数段的数量等等。
我用Excel 97提供的宏函数做学生成绩的分析处理程序。这个程序是Excel中的一个文件,包含以下宏:放置、总分、平均分、分数段、删除等。
这个程序是根据我们学校高三理科班学生的成绩。
程序:中使用的几个宏的功能描述
定级:是用来在难以定级的情况下按类分班。这个宏可以作为新生入学时分班的函数。
总分:自动为原分数计算总分。
平均分:计算各科平均成绩和全校各科成绩。
分数段:给出最大分数和最小分数,然后计算每个班级的每个分数段中的人数,并累加每个分数段中的人数。
Delete :用于删除未使用的工作表。
现在每个宏的代码如下:
一、分班
子布局
学生人数=191 ‘学生人数
常量zdno=12 ‘字段数
“Dim zd$(zdno)”定义为12个字段的数组
Dim a(studentno,zdno),stu(60,zdno)
Dim nam$(studentno),bjname$(60)’定义了一个数组,用于存储全校学生和每个班的学生的姓名
Dim bj(studentno)’定义了一个用于存储类的数组。
科学课工作表
床单(‘高三’)。挑选
对我来说=2对学生
bj(i)=ActiveSheet。细胞(I,1)
nam$(i)=ActiveSheet。细胞(I,2)
对于j=3至zdno
a(i,j)=活动表。细胞(I,j)
下一个j
接下来我
将字段存储在数组中。
对于i=1至zdno
zd$(i)=ActiveSheet。细胞(1,I)
接下来我
首先为每个班级创建工作表
床单(‘高三’)。挑选
床单(《高三原理》)。复印后:=纸张(‘分数段’)
床单(‘高三(2)’)。挑选
床单(‘高三(2)’)。名称=’33 ‘
对我来说=2对学生
对于j=1至zdno
活动纸。单元格(I,j)=空间$(1)
下一个j
接下来我
范围(‘ a1 ‘)。挑选
对于i=1至zdno
活动纸。单元格(1,i)=zd$(i)
接下来我
为34类至36类建立工作表
i=34至36
x$=Mid$(Str(33),2)
床单(x$)。挑选
床单(x $)。copyafter:=工作表(‘分数段’)
工作表(x$ ‘ (2 ‘)。挑选
工作表(x$ ‘ (2 ‘)。名称=Mid$(Str(i),2)
接下来我
具体安置。
对于k=33至36
bjrs=0
x$=Mid$(Str(k),2)
no=k Mod 10
床单(x$)。挑选
对我来说=2对学生
如果bj(I)=否,则
bjrs=bjrs + 1
bjname$(bjrs)=nam$(i)
For j=3 To zdno
stu(bjrs, j)=a(i, j)
Next j
End If
Next i
For i=2 To bjrs
ActiveSheet.Cells(i, 1)=no
ActiveSheet.Cells(i, 2)=bjname$(i)
For j=3 To zdno
ActiveSheet.Cells(i, j)=stu(i, j)
Next j
Next i
Next k
End Sub
二.总分
Const studentno=190
Const xknum=6
Const zdnum=12
Sheets(“高三理”).Select
For i=2 To studentno + 1
Sum=0
For j=1 To xknum
Sum=Sum + ActiveSheet.Cells(i, j + 3)
Next j
ActiveSheet.Cells(i, zdnum-1)=Sum
Next i
End Sub
三.平均分
Sub 平均分
Const studentno=190
Const xknum=6
Dim fs(studentno, xknum), pjf3(4, 6), bjrs(4), qxpjf(6)
Dim bj(studentno)
Sheets(“高三理”).Select
’以下程序段用于求全校平均分
For i=1 To studentno
bj(i)=ActiveSheet.Cells(i + 1, 1)
For j=1 To xknum
fs(i, j)=ActiveSheet.Cells(i + 1, j + 3)
Next j
Next i
For i=1 To xknum
Sum=0
For j=1 To studentno
um=Sum + fs(j, i)
Next j
qxpjf(i)=Sum / (j – 1)
Next i
’以下程序段用于求各班平均分
For j=1 To 4
For i=1 To studentno
Ifbj(i)=j + 2 Then
bjrs(j)=bjrs(j) + 1
For k=1 To xknum
pjf3(j, k)=pjf3(j, k) + fs(i, k)
Next k
End If
Next i
Next j
For j=1 To 4
For i=1 To 6
pjf3(j, i)=pjf3(j, i) / bjrs(j)
Next i
Next j
’写入各班各科平均分
Sheets(“平均分”).Select
For i=1 To 4
For j=1 To 6
ActiveSheet.Cells(i + 2, j + 1)=pjf3(i, j)
Next j
Next i
’写入全校各科平均分
i=7
For j=1 To 6
ActiveSheet.Cells(i, j + 1)=qxpjf(j)
Next j
End Sub
宏是一些储存了一系列命令的程序。当你创建一个宏命令的时候,你只是将一系列的键盘输入结合成一个简单的命令,你以后可以“回演”这个命令。因为宏命令可以减少复杂任务的步骤,使用宏命令可以显著得减少你花在创建,设置格式,修改和打印工作表的时间。你可以通过 Excel 内置的录制工具来创建宏命令,也可以在代码编辑器里面直接写代码。微软 Excel2002 电子表格具有强大的编程功能。
技巧:普通语言
Excel5 是市场上第一个使用 VBA 的软件。从那以后,VBA 开拓了在所有微软办公应用软件中的应用。这意味着你从本手册中学习的VBA将来同样可以应用到其它微软办公软件中,例如:Word,PowerPoint,Outlook or Access
微软 Excel2002 带来了很多内置,节省时间的特点,这些使你工作得更快更聪明。在你决定用宏命令来自动化工作表任务前,确保没有现成的内置工具来做这项任务。然而,当你发现你需要反复地做一些动作,或者 Excel 没有提供一个内置工具帮你完成该任务,那么创建一个宏命令吧。
宏命令可以使你能够将工作表的任何部分工作自动化。例如,你可以自动化数据录入――创建一个宏命令在工作表输入标题或者用新标签取代列标题。宏命令可以帮你检查选中的工作表区域里的重复值。
你可以通过宏命令快速地将格式应用到多个工作表,并且可以结合不同的格式,例如字体,颜色,边框和阴影等。尽管如此,Excel 还拥有非常强大的图表功能,如果你想要将图表创建和格式设置自动化,那么宏命令是一个好方法简单介绍。宏命令也可以帮助你设置打印区域,页边距,页眉,页脚,以及选择特殊的打印选项。
在你创建一个宏命令之前,花几分钟来考虑你究竟想做什么。因为宏命令是一大堆键盘输入的集合,事先计划你的行动非常重要。最早的计划宏命令的方法简单介绍是手动地将宏命令需要做的事情做一遍。在你做键盘输入的同时,在一张纸上记录下他们实际发生的情况,不要漏掉任何东西。
像录音机一样,Excel 可以将你的所有动作录制下来(事实上并非如此,有些操作是无法录制的)。如果在录制宏之前,你没有很好地计划,你会录制很多不必要的步骤,而这些都会影响运行速度。尽管修改宏代码比去除录制宏里面不必要的步骤容易,但是,仅仅录制必要的步骤会节省你修改代码的时间和以后的麻烦。
假设你想看一眼哪些区域是文本,哪些是数字以及哪些是公式,下图显示了使用不同的字体颜色和样式来区分这些单元格里潜在的内容。
如何设置上图所示的格式?打开一个含有公式计算的工作表,或者创建一个如图所示的例子。如果你用图示例子,请确保用SUM函数计算每月和季度的总结。
在录制宏之前,请做如下操作:
1、选取一个单元格
2、选择“编辑”-“定位”
3、在“定位”对话框中,点击“特殊”按钮
4、在“特殊”对话框中,勾选“常数”――勾选“文本”,同时去除“数字”,“逻辑值”和“错误值”的勾选
5、按“确定”返回工作表。注意,这时含有文本的单元格已经被选中了。小心,不要改变选中区域,直到你在下一步做一些必要的格式设置
6、对选中区域。选择“格式”-“单元格”
7、在单元格格式设置对话框,选择“字体”-设置字体为“粗体”,颜色为“紫色”。然后点击“确定”关闭对话框。注意,含有文本的单元格显示了不同的颜色。
步骤1到7教你定位到文本单元格,要定位数字单元格,请按如下操作:
8、选取一个单元格
9、选择“编辑”-“定位”
10、在“定位”对话框中,点击“特殊”按钮
11、 在“特殊”对话框中,勾选“常数”――勾选“数字”,同时去除“文本”,“逻辑值”和“错误值”的勾选
12、按“确定”返回工作表。注意,这时含有数字的单元格已经被选中了。小心,不要改变选中区域,直到你在下一步做一些必要的格式设置
13、 对选中区域。选择“格式”-“单元格”
14、在单元格格式设置对话框,选择“字体”-设置字体颜色为“暗蓝色”。然后点击“确定”关闭对话框。注意,含有数字的单元格显示了不同的颜色。
步骤 8 到 14 教你定位到数字单元格,要定位公式单元格,请按如下操作:
15、选取一个单元格
16、选择“编辑”-“定位”
17、在“定位”对话框中,点击“特殊”按钮
18、在“特殊”对话框中,勾选“公式”
19、按“确定”返回工作表。注意,这时含有公式计算结果的单元格已经被选中了。小心,不要改变选中区域,直到你在下一步做一些必要的格式设置
20、对选中区域。选择“格式”-“单元格”
21、在单元格格式设置对话框,选择“字体”-设置字体为“粗体”,颜色为“红色”。然后点击“确定”关闭对话框。注意,含有公式的单元格显示了不同的颜色。
步骤 15 到 21 教你定位到公式单元格。你可以在工作表中加上图例,以便容易理解。
22、选取区域 A1:A3,选择“插入”-“行”
23、选择单元格 A1
24、 选择“格式”-“单元格”,并且在“填充色”页点击“紫色”,点击“确定”返回工作表
25、选择 B1,输入“文本”
26、选择单元格 A2
27、选择“格式”-“单元格”,并且点击“暗蓝色”,“确定”返回
28、选择 B2,输入“数字”
29、选择 A3
30、选择“格式”-“单元格”,点击“红色”,“确定”返回
31、选择 B3,输入“公式”
32、 选择 A1
完成步骤 22 到 32 后,A1:A3 单元格会显示一个简单的颜色图例,如图上图所示。
正如你所看到的,不管工作表显示的任务多么简单,你却可能需要很多步骤来达到预期效果。创建
一个可以重复你刚才操作的宏命令,真的很省时间,特别是当你需要重复这个相同的工作到很多工作表中去。