ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:30.04KB ,
资源ID:23127047      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23127047.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Excel宏的应用.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Excel宏的应用.docx

1、Excel宏的应用Excel宏的应用Excel宏的应用-成绩分析处理程序 文章来源:互联网 Excel电子表格软件是应用最广泛的软件之一,它的数据处理、图表功能及各种函数和工具深受广大用户的喜爱。Excel文件是一个工作薄,一个工作薄最多可以包含255个工作表,每个工作表又可以包含大量的数据。 Excel的强大优势还在于它提供的宏语言Visual Basic for Application(VBA).Visual Basic是windows环境下开发应用软件的一种通用程序设计语言,功能强大,简便易用。VBA是它的一个子集,可以广泛地应用于Microsoft公司开发的各种软件中,例如Word、E

2、xcel、Access等。 那么,宏到底是什么呢, 在Excel中,宏是一个难以理解的概念,但对于一个具体的宏而言,却是容易理解的,如果说将一块文字变为黑体,字号为三号就可以看作一个宏的话,那么宏就不难理解了,其实Excel中的许多操作都可以是一个宏。 记录宏其实就是将工作的一系列操作结果录制下来,并命名存储(相当于VB中一个子程序)。在Excel中,记录宏仅记录操作结果,而不记录操作过程。例如,改变文字字体时,需要打开字体栏中的下拉列表,再选择一种字体,这时文字即变为所选择的字体,这是一个过程,结果是将所选择的文字改变为所选择的字体。而记录宏则只记录将所选择的文字改变为所选择的字体这一结果。

3、 Excel中工作表是由行和列组成的二维表格,我们可以通过系统提供的语句activesheet.cells(I,j),将当前工作表中的第I行第j列所在的单元格中的数据取出(也可将它数据填入到指定的单元格中),然后反把它放入所定义的数组中,这时就可以对其进行各种操作,如求平均分、总分、分数段人数等等。 本人就利用Excel中所提供的宏功能来做学生成绩的分析处理程序。本程序是Excel中的一个文件,其中包含以下几个宏:分班、总分、平均分、分数段、删除等。 本程序是以本校高三理科班学生成绩进行分析。 有关程序中用到的几具宏的功能说明: 分班:针对于难以确定班级的情况下,以班为单位进行分班,本宏可以作

4、为高一新生入学时进行分班的功能。 总分:对原始的成绩自动求总分。 平均分:对原始的成绩以班为单位进行各学科平均成绩的计算及全校各学科成绩的计算。 分数段:给定一个最高分数及最低分数,然后统计出各班各个分数段的人数,各分数段人数进行累计。 删除:用于删除不用的工作表。 现将各个宏的代码列举如下: 一.分班 Sub 分班() Const studentno = 191 学生人数 Const zdno = 12 字段数 Dim zd$(zdno) 定义为12个字段的数组 Dim a(studentno, zdno), stu(60, zdno) Dim nam$(studentno), bjname

5、$(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)

6、 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班工作表的建立

7、 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

8、 + 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

9、 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) D

10、im 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 以下程序段用

11、于求各班平均分 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 =

12、 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 四.分数段 Sub 分数段() Const max = 600 Const min = 390 Const studentno = 190 Const bjnum = 4 Const fsdnum = 22 Dim bjfsd(bjnum, fsdnum), zf(studentno, 2) S

13、heets(高三理).Select For i = 1 To studentno zf(i, 1) = ActiveSheet.Cells(i + 1, 1) 存放班级 zf(i, 2) = ActiveSheet.Cells(i + 1, 11) 存放总分 Next i For i = 1 To studentno For j = 1 To 4 3-6班共4个班级 If zf(i, 1) = j + 2 Then For k = max To min Step -10 low = Int(max + 10 - k) / 10) If zf(i, 2) k Then bjfsd(j, low)

14、 = bjfsd(j, low) + 1 Next k End If Next j Next i Sheets(sheet3).Select For i = 3 To 6 For k = 1 To fsdnum ActiveSheet.Cells(i, k + 1) = bjfsd(i - 2, k) Next k Next i Range(M3:W6).Select Selection.Cut ActiveWindow.LargeScroll ToRight:=-1 Range(B8).Select ActiveSheet.Paste End Sub 五.删除 Sub 删除() Sheets

15、(33).Select ActiveWindow.SelectedSheets.Delete Sheets(34).Select ActiveWindow.SelectedSheets.Delete Sheets(35).Select ActiveWindow.SelectedSheets.Delete Sheets(36).Select ActiveWindow.SelectedSheets.Delete End Sub 六.本程序的界面及各个宏运行的结果 平均分统计结果 : 总分统计结果 : 分班结果 分数段统计结果 常用办公软件 Excel技巧的整理、讲解,在这里给读者们看一看,给大家一

16、些提示,希望在你在平时能用得上。 1、两列数据查找相同值对应的位置 =MATCH(B1,A:A,0) 2、已知公式得结果 定义名称=EVALUATE(Sheet1C1) 已知结果得公式 定义名称=GET.CELL(6,Sheet1C1) 3、强制换行 用Alt+Enter 4、超过15位数字输入 这个问题问的人太多了,也收起来吧。一、单元格设置为文本;二、在输入数字前先输入 5、如果隐藏了B列,如果让它显示出来, 选中A到C列,点击右键,取消隐藏 选中A到C列,双击选中任一列宽线或改变任一列宽 将鼠标移到到AC列之间,等鼠标变为双竖线时拖动之。 6、EXCEL中行列互换 复制,选择性粘贴,选中

17、转置,确定即可 7、Excel是怎么加密的 (1)、保存时可以的另存为右上角的工具常规设置 (2)、工具选项安全性 8、关于COUNTIF COUNTIF函数只能有一个条件,如大于90,为=COUNTIF(A1:A10,=90) 介于80与90之间需用减,为 =COUNTIF(A1:A10,80)-COUNTIF(A1:A10,90) 9、根据身份证号提取出生日期 (1)、=IF(LEN(A1)=18,DATE(MID(A1,7,4),MID(A1,11,2),MID(A1,13,2),IF(LEN(A1)=15,DATE(MID(A1,7,2),MID(A1,9,2),MID(A1,11,2

18、),错误身份证号) (2)、=TEXT(MID(A2,7,6+(LEN(A2)=18)*2),#-00-00)*1 10、想在SHEET2中完全引用SHEET1输入的数据 工作组,按住Shift或Ctrl键,同时选定Sheet1、Sheet2。 11、一列中不输入重复数字 数据-有效性-自定义-公式 输入=COUNTIF(A:A,A1)=1 如果要查找重复输入的数字 条件格式公式=COUNTIF(A:A,A5)1格式选红色 12、直接打开一个电子表格文件的时候打不开 “文件夹选项”-“文件类型”中找到.XLS文件,并在“高级”中确认是否有参数1%,如果没有,请手工加上 13、Excel下拉菜单

19、的实现 数据-有效性-序列 14、 10列数据合计成一列 =SUM(OFFSET($A,(ROW()-2)*10+1,10,1) 15、查找数据公式两个(基本查找函数为VLOOKUP,MATCH) (1)、根据符合行列两个条件查找对应结果 =VLOOKUP(H1,A1:E7,MATCH(I1,A1:E1,0),FALSE) (2)、根据符合两列数据查找对应结果(为数组公式) =INDEX(C1:C7,MATCH(H1&I1,A1:A7&B1:B7,0) 16、如何隐藏单元格中的0 单元格格式自定义0;-0; 或 选项视图零值去勾。呵呵,如果用公式就要看情况了。 17、多个工作表的单元格合并计算

20、 =Sheet1D4+Sheet2D4+Sheet3D4,更好的=SUM(Sheet1:Sheet3D4) 18、获得工作表名称 (1)、定义名称:Name =GET.DOCUMENT(88) (2)、定义名称:Path =GET.DOCUMENT(2) (3)、在A1中输入=CELL(filename)得到路径级文件名 在需要得到文件名的单元格输入 =MID(A1,FIND(*,SUBSTITUTE(A1,*,LEN(A1)-LEN(SUBSTITUTE(A1,)+1,LEN(A1) (4)、自定义函数 Public Function name() Dim filename As Strin

21、g filename = ActiveWorkbook.name name = filename End Function 19、如何获取一个月的最大天数 :=DAY(DATE(2002,3,1)-1)或=DAY(B1-1),B1为2001-03-01 数据区包含某一字符的项的总和,该用什么公式 =sumif(a:a,*&某一字符&*,数据区) 最后一行为文本: =offset($b,MATCH(CHAR(65535),b:b)-1,) 最后一行为数字: =offset($b,MATCH(9.9999E+307,b:b)-1,) 或者:=lookup(2,1/(b1:b1000),b1:b10

22、00) 评委打分中,如何去掉两个以上最高分,两个以上最底分,求剩余人员的平均分,同时显示出被去掉的分数。 看看trimmean()函数帮助。 被去掉的分数: 最大两个:=large(data,) 最小两个:=small(data,) 怎样很简单的判断最后一位是字母 right(a1)*1 出错的字母 =IF(ISNUMBER(-RIGHT(A1,1),数字,字母) =IF(ISERR(RIGHT(A1)*1),字母,数字) 如何 设置单元格,令其不接受包含空格的字符 选定A列 数据有效性自定义公式 =iserror(find( ,a1) 数据-有效性-自定义-公式 =len(a1)=len(t

23、rim(a1) 原来的函数是=a1+a4+a7+a10+a13+a16+a19+a22 现在是=sum(n(offset(a1,(row(1:10)-1)*3,) 在一个工作表中引用其他工作表中的数据,但是被引用的工作表不是固定的,根据我输入的工作表名自动选择相应的工作表中的数据,请问在公式里怎样引用, =INDIRECT(A1&E1) A1为工作表名 奇数行求和 =SUMPRODUCT(A1:A1000)*MOD(ROW(A1:A1000),2) 偶数行求和 =SUMPRODUCT(A1:A1000)*NOT(MOD(ROW(A1:A1000),2) 查看字符串字数 =LEN(A1) 求非空

24、单元格数量 公式计算出来的数据,COUNTA不能用的(否则空字符也计算进去了) =COUNTIF($E:$E536,,*) 动态求和公式,自A列A1单元格到当前行前面一行的单元格求和. =SUM(INDIRECT(A1:A&ROW()-1) 20、比较好用的Excel文档修复工具 ExcelRecovery 21、EXCEL开方运算 将8开3次方,可以用这个公式,在单元格中输入 =8(1/3) 22、单元格中的数据分散对齐 文本格式全角输入 23、查找工作表中的链接 Ctrl+ 或编辑链接 24、如何让空单元格自动填为0 选中需更改的区域查找空替换0 25、把Word里的数字转换到Excel

25、方法有多种,选中复制设置输入单元格为文本选择性粘贴值 选中表格转换为文本粘贴分列对分列选项设置为文本 另存为文本文件EXCEL中打开文本文件对导入文本对话框进行对应设置 如今使用Excel协助处理各种各样数据的人已经越来越多了,但Excel中一些隐蔽很深的小技巧却不为大多数人所知,下面我们就把几个实用的、常用的小技巧列举给大家。 一、快速选中所有非空单元格: 在Excel中选中所有单元格比较容易,只需单击工作表左上角的行号(A、B、C)行与列号(1、2、3、)列的交叉空格,也可以按住左键拖选。但如果要在一个有几百几千行数据的工作表中选中所有有数据的单元格时,再去按住左键拖选就有点麻烦了,这时我

26、们可以这样做:先在任意一个有数据的单元格中单击,然后按Ctrl+Shift+*键(先用一只手按住一个Ctrl键和一个Shift键不放开,再用另一只手按一下星号键)就能轻松搞定了。 二、快速打开所需工作表: 我们一般把许多数据相关的工作表建在一个工作簿中,且为查看方便,每个工作表的名都用汉字起得很长,由于受屏幕大小的限制,就造成了有许多工作表名称没有被显示出来,这时我们可以右键单击第一个工作表名前边的工作表选择按钮,再在弹出的菜单中选择你看不到的工作表。(如图1) 图1 三、快速定位到某一单元格: 有时我们需要在一个几百上千的工作表中快速定位到某一个单元格,如想快速查看年级段第200名同学的总成

27、绩: 1、单击“编辑”?定位,在“定位”对话框中的“引用位置”框中输入L201(L是“总分”所在列,201是因为有表头,所在200名的基础上加1。)点“确定”就能直接定位到年级段第200名同学总成绩的单元格了。(如图2) 图2(点击看大图) 2、在编辑栏上的地址栏中直接输入行列号,然后回车即可。(如图3) 四、打印行列号: 为了更加方便的查看数据及公式引用,有时需要把工作表的行号和列号也打印出来,如实施素质教育的今天,不准给学生排名次,但我们可以利用列号来查看学生的具体名次:单击“文件”?页面设置,在“页面设置”对话框中选择“工作表”选项卡,在“打印”项中把“行号列标”勾选上,点“确定”退出后

28、再打印就可以了。(如图4) 图4 五、利用分页预览调整打印区域: 数据在打印输出之前一般要使用打印预览查看一下纸张是否够大,如果只多出一两行或一两列,则需返复调整,这时可以单击“视图”?分页预览,在分页预览模式下,直接按住左键拖动分页符(蓝色虚线)就可以了,调整完后再单击“视图”?普通,返回默认模式。(如图5) Excel快速计算、统计混合编班考试成绩表 为了保证学生成绩录入和处理的公平性,学校采用混合编班统一录入的方式。也就是说,把同年级多个班的学生成绩统一录入到一个Excel工作表中,而且使同班的学生不相邻。这种情况下,想在不破坏原始工作表的情况下统计各班学生各科的总分、平均分及各科的分数

29、段分布,咱们还得好好动一下脑子。 先看一下原始成绩表,如图1所示。 图 1 第一列为学生的考号,其中考号的第5位和第6位数字是班级代码。学生各科的成绩分别在C、D、E、F列。而我们需要统计的是各学科各班的总分、平均分及各分数段人数等项指标,如图2所示。 图 2 一、总分的统计 在不破坏原工作表顺序的情况下,总分的统计我们可以使用SUM函数及数组公式来完成。 首先点击L3单元格计算01班语文科的总成绩。 输入“=SUM(IF(MID($A$2:$A$150,5,2)= $K3,$C$2:$C$150)”,然后按下“Ctrl+Shift+Enter”快捷键,可以看到公式的最外层添加了数组公式标记(

30、一对大括号),公式变身成为“=SUM(IF(MID($A$2:$A$150,5,2)= $K3,$C$2:$C$150)”。切记这对大括号是不可以手工输入的。 按下快捷键后,L3单元格立刻显示出了01班语文科的总分。快吧?还有更快的呢。单击此单元格,向下拖动其填充句柄至L10单元格复制此公式,立刻各班的语文科总分就都有了。 方便吧?简单介绍一下公式中用到的相关函数,那咱们就可以举一反三了。 MID($A$2:$A$150,5,2)= $K3:K3单元格是班级代码。而MID函数可以截取字符串中的指定字符,如MID(A2,5,2)的含义是从A2单元格字符串的第5个字符开始截取2个字符组成新的字符串。至于公式中所写的的MID($A$2:$A$150,5,2)就可以利用数组公式对A

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1