问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

excel软件中的宏命令具体怎样操作?

发布网友 发布时间:2022-04-30 01:38

我来回答

1个回答

热心网友 时间:2022-06-28 05:25

Excel电子表格软件是应用最广泛的软件之一,它的数据处理、图表功能及各种函数和工具深受广大用户的喜爱。Excel文件是一个工作薄,一个工作薄最多可以包含255个工作表,每个工作表又可以包含大量的数据。

Excel的强大优势还在于它提供的宏语言Visual Basic for Application(VBA).Visual Basic是windows环境下开发应用软件的一种通用程序设计语言,功能强大,简便易用。VBA是它的一个子集,可以广泛地应用于Microsoft公司开发的各种软件中,例如Word、Excel、Access等。

那么,"宏"到底是什么呢?

在Excel 97中,"宏"是一个难以理解的概念,但对于一个具体的"宏"而言,却是容易理解的,如果说"将一块文字变为'黑体',字号为'三号'"就可以看作一个"宏"的话,那么"宏"就不难理解了,其实Excel 97中的许多操作都可以是一个"宏"。

"记录宏"其实就是将工作的一系列操作结果录制下来,并命名存储(相当于VB中一个子程序)。在Excel 97中,"记录宏"仅记录操作结果,而不记录操作过程。例如,改变文字字体时,需要打开"字体"栏中的下拉列表,再选择一种字体,这时文字即变为所选择的字体,这是一个过程,结果是将所选择的文字改变为所选择的字体。而"记录宏"则只记录"将所选择的文字改变为所选择的字体"这一结果。

Excel 97中工作表是由行和列组成的二维表格,我们可以通过系统提供的语句activesheet.cells(I,j),将当前工作表中的第I行第j列所在的单元格中的数据取出(也可将它数据填入到指定的单元格中),然后反把它放入所定义的数组中,这时就可以对其进行各种操作,如求平均分、总分、分数段人数等等。

本人就利用Excel 97中所提供的宏功能来做学生成绩的分析处理程序。本程序是Excel中的一个文件,其中包含以下几个宏:分班、总分、平均分、分数段、删除等。
本程序是以本校高三理科班学生成绩进行分析。

有关程序中用到的几具宏的功能说明:

分班:针对于难以确定班级的情况下,以班为单位进行分班,本宏可以作为高一新生入学时进行分班的功能。

总分:对原始的成绩自动求总分。

平均分:对原始的成绩以班为单位进行各学科平均成绩的计算及全校各学科成绩的计算。

分数段:给定一个最高分数及最低分数,然后统计出各班各个分数段的人数,各分数段人数进行累计。

删除:用于删除不用的工作表。

现将各个宏的代码列举如下:

一.分班

Sub 分班()
Const studentno = 191 '学生人数
Const zdno = 12 '字段数
Dim zd$(zdno) '定义为12个字段的数组
Dim a(studentno, zdno), stu(60, zdno)
Dim nam$(studentno), bjname$(60) '定义一个存放全校学生名字及各班学生名字的数组
Dim bj(studentno) '定义存放班级的一个数组
'理科班工作表
Sheets("高三理").Select
For i = 2 To studentno
bj(i) = ActiveSheet.Cells(i, 1)
nam$(i) = ActiveSheet.Cells(i, 2)
For j = 3 To zdno
a(i, j) = ActiveSheet.Cells(i, j)
Next j
Next i
'存放字段到数组中。
For i = 1 To zdno
zd$(i) = ActiveSheet.Cells(1, i)
Next i
'先建立各个班级的工作表
Sheets("高三理").Select
Sheets("高三理").Copy After:=Sheets("分数段")
Sheets("高三理 (2)").Select
Sheets("高三理 (2)").Name = "33"
For i = 2 To studentno
For j = 1 To zdno
ActiveSheet.Cells(i, j) = Space$(1)
Next j
Next i
Range("a1").Select
For i = 1 To zdno
ActiveSheet.Cells(1, i) = zd$(i)
Next i
'34到36班工作表的建立
For i = 34 To 36
x$ = Mid$(Str(33), 2)
Sheets(x$).Select
Sheets(x$).Copy After:=Sheets("分数段")
Sheets(x$ + " (2)").Select
Sheets(x$ + " (2)").Name = Mid$(Str(i), 2)
Next i
'具体分班。
For k = 33 To 36
bjrs = 0
x$ = Mid$(Str(k), 2)
no = k Mod 10
Sheets(x$).Select
For i = 2 To studentno
If bj(i) = no Then
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

参考资料:http://zhidao.baidu.com/question/52322852.html?fr=qrl

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
本田思域压缩机保多久 本田思域06款空调压力传感器线颜色 两道关于导数的题。(要详细过程、谢谢) 2011廊坊会计从业资格考试座位号是双号可是老师给发的是A卷怎么办 听说今年廊坊会计从业资格证卡单不卡双,是真的吗? 廊坊考出纳证怎么找? ...专业的,未接触过会计相关科目,我想报考会计从业资格证。 请问我自... 身上很痒,手上痒的地方都是有一个小水泡,挠穿了又痛又痒,天气热的时候... 洲星马蹄粉做的糕点口感如何? 洲星马蹄粉做出的糕点如何? 衣服被红笔弄上了,用什么可以洗干净 血糖高可以吃白糖煮黄桃吗 血糖高的人都不能吃有糖的食物吗 糖尿病人可不可以吃糖 血糖高的人为什么不能吃糖 杨薯为什么也叫地瓜 高血糖人吃糖后有什么反应 高血糖的人群能吃白砂糖、乳粉、和提子干吗 茶楼开业庆典 血糖高可以吃砂糖橘吗 地瓜也被称作山药吗?有什么作用啊 求一个公司开业庆典活动方案 成都有没有做创意活动策划的公司呢 经常吃糖会血糖超标么,高血糖的人真的不能吃糖么? 芋头山药红薯可以一起吃吗 在成都做开业庆典选哪家庆典公司好? 血糖高患者可以吃含糖量的食物吗 七个月宝宝能不能吃山药红薯泥 血糖高的人不能吃糖吗? 商场的开业庆典需要特别注意哪些问题? 男孩今年15岁周岁,身高165,骨骼线快闭合了,请问还能长高吗? 15岁男孩,骨骺线基本完全闭合,如何长高 怎么长高?骨骼闭合就不能长了吗?才15岁 LOL2014赛季莫甘娜辅助怎么样?和她姐姐比呢? 为什么要玩莫甘娜这么弱智的辅助 深圳专科大学主要学校的知识有哪些 深圳职业技术学院哪些专业最热门 初中毕业没考上高中 上什么技校好? 深圳职业技术学院优势专业排名及最好的专业有哪些 深职院什么专业就业前景好 “深圳职业技术学院”和“广州番禺职业技术学院”这两个学校分别怎么样?多角度分析? 本人要报 如何给C:\Program Files\Microsoft SQL Server\90\Shared给这个目录增加network service权限或者 user权限 深圳职业技术学院专业排名 最好的专业有哪些 电子信息工程技术、计算机网络技术在深圳职业技术学院算不算热门专业 北京人为什么不进故宫? 清朝皇帝为什么不爱住在紫禁城? - 信息提示 故宫为什么不住人了 xboxonex xgpu会员免费游戏里有荒野大镖客2吗? 复联4托尼斯塔克钢铁侠死时和葬礼的背景音乐