excel利用vba定义函数的教程全解
发布时间:2022-01-18 05:37:34
Excel中经常需要使用到vba进行自定义函数的技巧,自定义函数具体该如何用vba自定义呢?接下来是小编为大家带来的excel利用vba定义函数的教程,供大家参考。
excel利用vba定义函数的教程
用vba定义函数步骤1:例:下面表格中需要计算一些三角形的面积
用vba定义函数步骤2:B列是底边长,C列是高,要求在D列通过公式计算三角形面积。
excel利用vba定义函数的教程 图1
(通常我们会在D3单元格用公式 =B3*C3/2 来计算,然后把这个公式向D列下方拖动复制,得到其他公式。这只是一个简单的例子,通过它来学习编写简单的自定义函数)
用vba定义函数步骤3:打开VBA窗口
按ALT+F11调出VBA窗口,插入一个用户模块。
excel利用vba定义函数的教程 图2
用vba定义函数步骤4:编写代码
通常自定义函数是用function命令开始的,在这个命令后面给它指定一个名字和参数
把下面这个自定义函数代码粘贴到刚插入的用户模块中就可以使用了。
Function sjxmj(di, gao)
sjxmj = di * gao / 2
End Function
这段代码非常简单只有三行,先看第一行,其中sjxmj是自己取的函数名字,括号中的是参数,也就是变量,di表示“底边长”,gao表示“高”,两个参数用逗号隔开。
再看第二行,这是计算过程,将di*gao/2这个公式赋值给sjxmj,即自定义函数的名字。
再看第三行,它是与第一行成对出现的,当你手工输入第一行的时候,第三行的end function就会自动出现,表示自定义函数的结束。
excel利用vba定义函数的教程 图3
用vba定义函数步骤5:使用自定义函数
回到EXCEL窗口,我们在D3单元格中输入公式 =sjxmj(b3,c3) ,就会得到这一行的三角形面积了,它的使用方法同内置函数完全一样。
excel利用vba定义函数的教程 图4
用vba定义函数步骤6:通过上面例子可以了解自定义函数的编写和使用方法,下面再介绍一个稍微复杂点的自定义函数。
经常对数据进行处理的朋友可以会遇到多条件查找某一个数据,一般这种情况需要编写“数组公式”来解决,公式较长,也不易理解。
比如下面统计成绩的表格,需要根据A1:D7的成绩表,统计出两门功能都在90分以上的学生人数。
大家可以看到在H3单元格中的公式比较长,理解起来也有一定难度。
我们通过自定义函数也可以得到正确结果,函数代码如下:
Function 统计(a, b, c, d, e)
For i = 1 To a.Rows.Count
If b = a.Cells(i, 1) And a.Cells(i, c) >= e And a.Cells(i, d) >= e Then
统计 = 统计 + 1
End If
Next
End Function
这个函数用了五个参数(因为涉及到一个区域和四个条件)
参数a表示要统计的区域,在此例中为B2:E7
参数b表示要统计的是哪一个班级,在此例中为G3单元格
参数c表示数学成绩相对于区域第一列向右的列数,在此例中为3
参数d表示数学成绩相对于区域第一列向右的列数,在此例中为4
参数e表示分数,在此例中为90分
提示:要注意参数c和d“相对”于“区域”的列数,并非是从A列开始向右的列数。
把上面这段代码也粘贴到用户模块中就可以使用了
回到EXCEL窗口,在H3单元格中输入公式 =统计($B$2:$E$7,G3,3,4,90) 就可以显示正确结果了。
Function 统计2(a, b)
For i = 1 To a.Rows.Count
If b = a.Cells(i, 1) And a.Cells(i, 3) >= 90 And a.Cells(i, 4) >= 90 Then
统计 = 统计 + 1
End If
Next
End Function
在表格中的H3单元格中输入公式 =统计2($B$2:$E$7,G3) 就可以了。
从上面可以看出,自定义函数可以使用“汉字”做为函数的名字,方便记忆,也可以根据实际情况对参数进行简化。
用vba定义函数步骤7:通常这种时候需要在H3单元格使用数组公式 =SUM(IF(($B$2:$B$7=G3)*($D$2:$D$7>=90)*($E$2:$E$7>=90),1,0))
excel利用vba定义函数的教程 图5
用vba定义函数步骤8:如果我们的成绩表格式是固定的,各科目成绩位置相对于区域也是固定的,而且要统计的分数也是固定的90分,就可以在自定义函数中将参数的数量减少到两个,如下:
excel利用vba定义函数的教程 图6
猜你喜欢
- Win8系统电脑开机提示找不到funkoala64.dll怎么办?Win8系统开机提示无法找到funkoala64.dll文件该如何解决?请
- 不选菜单字型快速变想将某个词或句子变为粗体、斜体、下划线等特殊版式吗?选中文字后,用一下快捷键即可:粗体Ctrl+B;斜体Ctrl+I;下划
- 据小编得到的最新消息,微软公司对于win1019035版本的操作系统再次进行了更新。那么这一次的更新和往常一样也是修复了之前出现的问题缺陷,
- 我们日常在使用电脑上网的过程中,很多用户经常遇到网络问题,而导致网络问题有一部原因都是因为网卡驱动异常而造成的。那么遇到这种情况我们该如何解
- 有用户留言问Windows10桌面图标没有了怎么处理?或者开机不出现桌面,或者不小心关掉了一个软件导致桌面消失了的情况。那么电脑桌面图标全部
- cad线型的设置方法:1、我们首先打开电脑进入AutoCad2014软件。2、接着我们用鼠标选择上要设置线型的矩形。3、选中矩形后我们单击鼠
- 电脑上的刷机精灵怎么用?刷机精灵具有刷写ROM、Radio、Recovery、开机第一屏等功能,同时能够进行一键root刷机操作。那具体要怎
- win10怎么进行磁盘分区?对磁盘进行分区可以合理的规划使用空间,并且让电脑看起来不那么杂乱,那怎么进行磁盘分区会好一些呢?一起来看看分区的
- 什么是dwg文件呢?小编在这里给你们来一个笼统而又简单的解释哈。dwg文件就是AuToCAD绘图保存的格式文件,但是我们要怎么去打开这个dw
- Excel2016怎么计算重复次数?Excel2016表格中想要看看某几个文字或者数字出现的次数,该怎么统计呢?下面我们就来看看excel统
- 虚拟内存别称虚拟存储器,虚拟内存对于我们电脑来说是非常重要的,因为有时候需要在WinXP系统上运行大软件,如果你内存不足,这时候虚拟内存就可
- 问题描述:苹果iPhone X使用爱思助手常规快速刷机时,刷到60%就不动了,刷不过去,提示错误:无法恢复设备(-53)。 &n
- 平常我们在使用Word进行文档编辑时,总要重复输入一些内容,如自己的姓名、地址、电子邮件和电话,这些枯燥的劳动是不是让您感到厌倦和乏味呢?其
- 很多人好奇,经常能在任务管理器上看到vptray.exe进程,到底什么是vptray.exe进程,能不能关闭?今天小编来给大家谈谈在任务管理
- 由于系统架构变化.NET 3.5离线安装包无法直接安装,需联网下载数据包安装,下面是具体的操作步骤,需要的朋友不要错过知识点分析:默认情况下
- Excel页眉页脚怎么添加路径?很多文件早被打印出来的目的都是为了快速了解某个数据情况,但因为打印出来的成品少有加入小标题的文件,就会造成某
- 条形码现在应用非常广泛,很多领域里都有条形码的使用,如果我们要在wps文字中插入条形码,那么,应该如何插入呢?下面就让小编告诉你如何在wps
- 形色app怎么用?形色app是一款非常好用的花卉识别软件,我们可以把不认识的植物用形色app进行识别,那么形色app到底该怎么用呢?下面就给
- Win10明明是管理员还是需要管理员权限怎么办?一些用户发现自己明明登录的是管理员账户,进行一些操作的时候还是需要获得管理员权限,这是怎么回
- Excel分列功能很好用也很强大,它可以对有规律的一些数据进行分列处理以此得到我们想要的结果,但很多人不知道Excel分列在哪,今天,小编就