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

excel利用vba定义函数的教程全解

发布网友 发布时间:2024-06-03 16:20

我来回答

1个回答

热心网友 时间:2024-06-04 05:21

  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

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
巴西龟最长活多久,家养!!! 养胃的药最好的是什么啊 婴儿积食发烧不愿吃药怎么办 板门穴位在哪个部位 手机设置放偷看的方法? 凝结水回收器生产厂家? 个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 轻重缓轻是什么意思? 轻重缓急是什么意思? ...基本医疗保险药物和中国国家基本药物有什么不同?能不能简单和我说... 成功创业的决定性因素 绵阳南河坝到华尔街,转好多路公交 奥图码HD200X重要参数 intel hd300相当于什么显卡? 最早建立了类似行星绕日的原子核式结构模型的物理学家是( )A.卢瑟福... 卢瑟福提出了原子的核式结构模型,这一模型建立的基础是( )A.α粒子的... 提出原子的核式结构模型的科学家是( )A.卢瑟福B.牛顿C.查得威克D.汤姆... 原子的核式模型是由著名科学家___提出的,并通过实验证实原子是由... 沙子价格多少钱一吨2021 京剧脸谱唱段的词 我说想抱着她睡,她回复那个我错了的表情是什么意思呢?她不喜欢我? 银川中考体育考什么 宝马5系钥匙能不能换7系的 老年人使用拐杖的好处有哪些? 小宝宝的情绪自控力会比成年人差很多,老师要如何引导? 怎么通过游戏来增强宝宝的自控力? 2台1250的变压器进线高压电缆需要多大的 长度在1000米? Excel VBA编程教程(基础一) ExcelVBA初学者教程pdf电子书免费下载 excel利用VBA进行多表合并计算实例教程 如图是《石灰吟》一诗中物质之间的转化关系,请用化学用语填空:(1)三物... 在生活和化学实验中,大家经常需使用多种除湿剂(干燥剂)(1)生石灰... 既然一个大气压是0.1MPa,即1公斤压力,那一个大气压就是我们呼吸的压力... 颈椎会引起胸闷气短吗 十二生肖最胡言乱语,改朝换代,道听途说,前呼后拥的是谁? 我父亲九十岁发的社保卡,里面会有钱吗? 鸳鸯湖棹歌张燕昌表达了诗人怎样的情感 鸳鸯湖棹歌的后人评价 鸳鸯湖水 一首歌曲里面的歌词,有点像民歌 男生对女生说,慢慢来吧,刚结束先别开始好吗 内审员发现力学试验室在用检测标准不是最新版本 喜格-理化实验室布置要点 力学实验室试样制备可以委托加工吗 无限期待指的是什么意思? 河南结构力学实验室哪个好? 上海到海口什么快递快? 今天晚上发的顺丰 星期几能到 上海到海口的 货到付运费多少钱大约_百 ...