怎么在Excel中创建VBA自定义函数?
- 2026-09-28 02:38:15
怎么在Excel中创建VBA自定义函数?VIDEO TUTORIAL 视频教程 

TEXT TUTORIAL 文字教程 
Excel中有很多内置的函数,像SUM,IF函数,直接能在单元格里使用。但是如果Excel中的内置函数满足不了我们的需求时,就可以写一个VBA自定义函数,也就是让你按自己的计算逻辑造一个“新函数”。这一次咱们就讲一下如何在 Excel 中创建VBA自定义函数。 
01 
首先找到【开发工具】选项卡,如果没有开发工具选项卡怎么办呢?那就点击【文件】选项卡,从更多中单击选项,在弹出的Excel选项对话框中选择【自定义功能区】,在右侧找到【开发工具】这一选项,在其复选框前打勾。这样【开发工具】选项卡就出来了。 


02 
在【开发工具】中,找到【代码】功能区,点击Visual Basic。

03 
在弹出的【Microsoft Visual Basic for Applications】窗口中,点击插入,下拉选项中选择模块,就可以在模块中写一些程序。 

04 
可以看到插入的模块中分成几个部分,下面这一部分是监视窗口,你在函数中写的表达式,在监视窗口可以看它的值、看它的类型,进行监视,用来调试(debug)。而上面这一部分,实际就是写函数体用的。怎么写函数体呢? 

05 


06 
第一行的Function是函数的开始,End Function 是函数结尾,里面的东西是函数体。这个“x”是什么呢?是一个参数。简单说就是你调用某个子程序或函数时,需要传给它的“输入值”,用来告诉这段代码“该处理什么数据”。 咱们写的这段函数里面只有一个参数,它是一个 Range 值,就是一个范围。比如说 
07 
Function后面的这个AddOne是什么呢?是函数的名称。比如说做饭这个过程,起一个名字叫做饭,造火车这个过程,起个名字叫造火车,这两个过程是不同的名称。那这个函数要做的事情是什么呢?就是将x这个参数的值加一,所以咱们也给取了个名称,叫AddOne,当然也可以取别的名称,只要能表达这个函数要做的事情就行。 
08 
再看下“AddOne = Val(x) + 1”,这是什么意思?Val(x)表示x的值,比如x是A1单元格,A1单元格里面的数据是1,那么Val(x)就是1,Val(x) + 1后把值赋给了AddOne,所以AddOne就是2。那么这个函数的返回值是什么类型的呢?这里“As Double”进行了定义,是Double类型的,Double是一种数据类型,用来存小数。 
09 





10 
函数写完之后,就是要运行,首先,我们需要通过点击“另存为”将文件存储为Excel启用宏的工作簿(*.xlsm)。 

11 
打开这个xlsm文件,如果我们在A1单元格输入25,在B1单元格输入"=AddOne(A1)",回车后在B1单元格就会展示我们自定义的这个函数的返回值,也就是A1单元格的值加1。 

12 
我们也可以加一下注释来描述这个函数是做什么的。在vba模块的函数中打一个单引号,后面写上函数的描述后保存就可以了。注释里的东西是不用被执行的。

13 
那么怎么对这个函数进行调试呢?模块中有效代码前都能打断点,这里在第一行前打一个断点。然后在B1单元格输入“=AddOne(A1)”并且回车,可以看到断点变成了一个黄色小箭头,说明开始执行这一行的语句,这时把鼠标放到AddOne上,可以看到AddOne为0。 


14 
点击【调试】,下拉选项中点击添加监视,输入“Val(x)”,监视窗口就会出现“Val(x)”的表达式,值,类型和上下文。也可以输入“Val(x) + 1”。 




15 
点击【调试】,下拉选项中点击逐语句,或者直接按F8键,可以看见箭头会移动到下一个有效语句行,说明要开始执行这一行语句了。这时把鼠标移动到AddOne,值还是0。 

16 
再按F8键,箭头移动到下一行,这时第二行执行结束,开始执行第三行,这时把鼠标移动到AddOne,值变成了26。 

17 
继续按F8,执行结束,最终B1单元格显示值为26。 
完 
喜欢此内容的人还喜欢 excel怎样获取外部数据? 柯柯笔记 
怎样使用Excel中的查找功能? 柯柯笔记 
如何将多个excel文件合并为一个excel文件? 柯柯笔记 
excel中怎样写出九九乘法表? 柯柯笔记 

关注
重播 分享 赞

















比如说咱们写一个 function。什么 function 呢?比如说:
“
Function AddOne(x As Range) As Double
AddOne = Val(x) + 1
End Function
”
但是你可能都不是很清楚什么意思,是吧?不要着急,咱们先把这段程序写完。



A2:B4 是不是一个范围?是的,这就是一个Range。定义为Range后,程序就知道你是把 A1 当成参数给它,还是把 A2:B4 当成参数给它,对此做出相应的计算。





没有编程基础的同学可以从视图中点击对象浏览器,搜索函数,找到想要搜索的函数,右击函数,在弹出的选择框中选择帮助,就会在浏览器中加载出函数的语法设置等内容,可以对照看一下函数体中的函数的用法。





































本文来自网友投稿或网络内容,如有侵犯您的权益请联系我们删除,联系邮箱:wyl860211@qq.com 。