实例解析excel宏

上传人:xiao****1972 文档编号:84935719 上传时间:2019-03-06 格式:DOC 页数:7 大小:350.50KB
返回 下载 相关 举报
实例解析excel宏_第1页
第1页 / 共7页
实例解析excel宏_第2页
第2页 / 共7页
实例解析excel宏_第3页
第3页 / 共7页
实例解析excel宏_第4页
第4页 / 共7页
实例解析excel宏_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《实例解析excel宏》由会员分享,可在线阅读,更多相关《实例解析excel宏(7页珍藏版)》请在金锄头文库上搜索。

1、EXCEL中运用“宏”自动计算总分实例解析EXCEL宏的应用 一、什么是宏“宏”,其实是使用代码编成的一种计算机指令。其实就是通过编程,让操作变得更简单,更自动化,要学会自定义“宏”,最好能有一定的编程基础,最好是学过VB的,不过,没有学过也没什么关系,也可以编一些简单的宏。百度百科对宏的定义是:“所谓宏,就是一些命令组织在一起,作为一个单独命令完成一个特定任务。Microsoft Word中对宏定义为:“宏就是能组织到一起作为一独立的命令使用的一系列Word命令,它能使日常工作变得更容易”。Word使用宏语言Visual Basic将宏作为一系列指令来编写。”这里说明一下,不仅在Word里面

2、我们可以使用宏,MS Office系列的其他一些软件也可以使用宏,EXCEL当然也是可以使用宏的。下面,我们来做一个“班级成绩统计”的表,来学习“宏”的应用。二、宏的录制宏的初级运用是录制。顾名思义,“宏”的录制就是指“宏”可以像录音、录像一样录制而成。只不过录音录像录的是音像,而“宏”的录制,录制的则是操作。我们打开EXCEL,来录制一个宏。点击屏幕上方的“视图”菜单,再点击菜单栏下面的工具条中的“宏”,会拉出一个菜单,然后,点击“录制宏”,弹出“录制新宏”的对话框,取个名,如果你很懒,那么宏名不改也没关系,不过最好设个快捷键。如果你比较喜欢有条理一点,那么,再填个说明。 接着,点击确定。然

3、后输入下面一行字。有点“班级成绩册”的味道了吧?输好后,停止录制。接着,来看看成果。删去首行,点击“宏”“查看宏”。找到刚录制的宏(如果你没改名,应该叫“Macro1”),双击,或单击后这个宏,并单击“执行”。这时,我们发现,删去的首行,又回来了。其实,这不是回来了,是我们刚才的操作被“录制”了下来,这次只是“播放”了一下。现在我们发现,漏了一些什么东西,对了,一般的“成绩册”,应该还有几列,最起码应该还有“学号”和“姓名”。怎么办,重新录“宏”吗?其实不用,因为“宏”是可以修改的。三、修改宏让宏变得更强大更灵活点击“宏”“查看宏”,点击任一个宏,再点击“编辑”,则进入VBA的编辑页面,快速熟

4、悉一下这个界面,对宏的修改,就在这里进行。当然,要修改宏,最好有一点编程的基础,最好是熟悉VB,因为这里的代码,就是VB,VB是什么呢?如果要深入了解,可以“百度”一下,简单地说,VB是一种程序语言。如果你不太懂,没关系。我们首先来看,这个视图中编辑区的首行是“Sub Macro1()”,什么意思呢?不知你注意到没,macro1就是我们刚才输入的“宏名”,聪明的你一定知道了,这个就是“宏”的代码,这个macro1的代码就是放在“Sub Macro1()”和“End Sub”之间的。其实Sub在很多地方叫做“子程”,但在这里,一个Sub就是一个“宏”。我们再来看这两句: Range(A1).Se

5、lectActiveCell.FormulaR1C1 = 语文再看表格,横坐标为A,终坐标为1的单元格,内容就是“语文”。聪明的你应该知道了这句话的意思了吧,这句话的意思,就是在A1的单元格中填入内容“语文”。如果你再聪明一点,你可能会想到可以把这句话简化成:Range(A1) = 语文这句话执行的结果与前面两句其实一样。前面一句是录制出来的,所以,你的点击A1单元格的操作也被录制了下来。而我们完全可以不用点击,直接发指令填写单元格。好了,现在,我们把“姓名”和“学号”两个单元格补进去,最后,宏Macro1的代码变为:Range(A1) = 学号Range(B1) = 姓名Range(C1)

6、= 语文Range(D1) = 数学Range(E1) = 英语Range(F1) = 科学Range(G1) = 社会Range(H1) = 总分现在,试下,不用去删除原来的内容,直接去执行宏吧!什么,忘了怎么执行?唉,这里不解释了吧,您如果真的忘了,回到前面去看看。唉,有人可能觉得宏也就这么点用处,没啥花头。这当然是小看了宏。接着我们让宏帮我们来统计优秀率、合格率、平均分,在以前,算这个要很长时间。有了EXCEL后,帮我们节省了好多时间,但你想不想让这件事瞬间搞定呢?如果你的回答是“想”,那么请你往下看。我们先把成绩输进去吧,目前,除了网上阅卷外,还没有手段能把试卷上的分数自动录入EXCE

7、L,好了,别做梦了,如果不是网上阅卷,只能手工输入了,花点时间吧。对了,我们这个表格还没有正式使用,所以数据不用太多,输个五行吧。随便输些数据进去好了,当然,分数要符合实际情况。四、宏的高级应用建自动计算总分的宏数据输好之后,我们来录制总分计算的宏。先点击“视图”“宏”“录制宏”。为了方便,我们把这个宏定名为“zongfen”,填个说明:“这里计算全班总分”。再定位至第一行“总分”列,用求和公式把第一行总分求出,接着利用自动计算,算出其他总分。停止录制。如果你不会自动计算,因为只有五行,你也可以逐行计算总分。录制好后,我们要修改这个宏,因为录制好的宏是死的,不自动。只要数据多了一行,我们的宏是

8、不会计算多了一行的总分的。有时表中数据改变甚至会造成统计数字出错,或者甚至都执行不下去。但现实中,每年你教的班级的人数一般都不同,很可能统计的课程数也会不同,这就要求我们必须让宏变得更灵活。要想让宏变得更灵活,我们必须来认识一种叫“变量”的东西。顾名思义,它是可以变的“量”。怎么,越来越复杂了,感觉到难搞了吧?不要急,虽然复杂,但聪明的你一定会慢慢懂的。首先,我们要知道表中含有的行数和列数,为什么要知道这个呢,等会你就明白了。以下两句用来获取shtte1表的总行数和总列数,把它们写入“zongfen”的宏代码中。 rSheet1 = Sheet1.UsedRange.Rows.CountcSh

9、eet1 = Sheet1.UsedRange.Columns.CountrSheet1和cSheet1就是“变量”,这两个语句就是告诉电脑,把sheet1的总行数存到变量rSheet1中,总列数,存到cSheet1中,等会要用总行数和总列数,就可以用这两个变量来代替等式右边的代码。目前为止,我们要EXCEL在某个单元格里填东西,都是直接告诉电脑单元格地址,这个地址,一般由一个英文字母和一个数字代表,英文字母代标横向座标(列号),数字代表纵向座标(行号)。如果我们可以用变量来表示地址,配合一些控制程序语句(如循环语句、分支语句),就能给一“群”地址的单元格填充数值。当然,到了这里,不得不说一句

10、,如果你从未编过程,下面的内容真的有点难懂了,如果你对程序有所了解,并且知道VB的循环语句和分支语句,那么,下面的内容却是很简单的。首先我们来看,总分的单元格地址该怎么写?我们来看,Excel中,单元格的地址一般表为A1,A2B1,B2,实际上由两部分组成,A,B是第一部分,我们可以称之为列号或纵坐标,1,2是另一部分,我们可以称为列号或横坐标。如果我们的课程数固定不变,那么总分的横坐标(即“列号”)始终是“H”,如果课程数要变,那么总分的横向座标会变,但是始终是Chr(Asc(A) + cSheet1-1),明确一下,chr函数是将ASCII码转换成“字符”的转换函数,ASC则是将“字符”转

11、换成ASCII码的转换函数,这行代码的意思是,取出字符“A”的ASC码,加上总列数,再减一,得到一个数字,把这个数字代表的ASCII码转换为对应的字符。实际上就是确定总分所在列为从A列往右数cSheet11列,cSheet1我们刚刚在上面说过,是指Sheet1的总列数。可以写一个语句,将这个值赋给一个变量,如:zfcol= Chr(Asc(A) + cSheet1-1)再来看“总分”项目的纵坐标,即“行号”。因为每一个同学都要算总分,所以行号实际是一群,即从第一行到最后一行,这个最后一行的“行号”,实际上等于这个表有数据的行的总数。我们可以用循环语句来实现,循环的终止值,其实就是行数。所以得出

12、以下语句。这个语句,估计没有学过VB的同学可能不太懂了,实际上就是一个循环:循环次数是rSheet11次(因为成绩是从第二行开始输的,所以我们的行号从“2”开始,循环次数也比总行数少1),控制变量i可以在循环体中使用。For i = 2 To rSheet1Next循环体可以暂时省略。现在我们必须知道,在宏代码中,单元格是用Range(“列号+行号”)构成(中间加号要去掉),所以我们的总分的单元格地址写成Range(Trim(zfcol) & Trim(Str(i),这里的Str是把数字转换成字符格式的格式转换函数,Trim是用来删除字符串中的空格的。好了,现在我们把循环体写进去。下面的代码,

13、第一句是获取最后一门课所在列的列号。kmcol = Chr(Asc(A) + cSheet1 - 2)For i = 2 To rSheet1Range(Trim(zfcol) & Trim(Str(i) = =SUM(C & Trim(Str(i) & : & Trim(kmcol) & Trim(Str(i) & )Next计算总分的宏就编好了,这里需要注意的是,输入成绩时,千万不要在“总分”列右边的列中输入数据,也不要在最后一行下面输入数据,否则,统计出来的列数或行数就不正确了。现在你是不是有点激动呢,试一下成果,换多一点数据试下。学会了总分的快速计算,你是不是想实现平均分、合格率、优秀

14、率的快速计算呢?我想你一定想,但今天在这里我们不讲,你是不是可以自己去摸索下呢?五、宏的快捷调用宏的调用,如果用菜单来操作,好像比较麻烦,但宏的调用有几种快捷方式,我们这里来介绍两种。(一)快捷键在录制宏时可以定义快捷键,如果录制时没定义,也可以在查看宏时点击“选项”按钮添加。使用快捷键调用宏是非常方便的,前提是要记住各个宏的快捷键。所以定义快捷键时可采用方便记忆的键。但尽量不要与系统指定的快捷键冲突,比如CTRL+H,是系统指定的“查找与替换”的快捷键,而CTRL+Z是系统指定的“撤销”操作的快捷键,这些键最好不用。(二)按钮在EXCEL2003中,可以插入控件的办法来插入按钮,本人在EXC

15、EL2007中找了半天也没办法插入“控件”,但可以插入“形状”,插入一个形状(如“矩形”)后右击这个形状,可以看到一个菜单项“指定宏”,单击这个菜单项,弹出宏的列表,选择并确定,这个形状就变成了执行这个宏的开关了。比如我们可以建两个矩形,一个指定给写首行表头的宏,并在矩形中插入文字“初始化表格”,一个指定给总分计算的宏,并在矩形中插入文字“计算总分”。在输入成绩前,点击“初始化表格”,首行表头就插好了,键入或拷贝好成绩后,点击“计算总分”,总分就算好了。小结谢谢你花了一些时间来看我的这个“宏”的基本知识及应用,相信看了后你对EXCEL的“宏”有了一定的了解。EXCEL的“宏”可以录制,但录制下来的宏是没有多少用处的,我们对它进行修改后,“宏”的功能会强大许多,灵活许多。我们可以在EXCEL中插入按钮并指定给某个宏,也可以给宏指定快捷键,从而使宏的使用更方便。作者:浙江诸暨璜山镇中 杜来永

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号