Excel VBA系列之自定义函数

Excel VBA系列之自定义函数,第1张

在Excel VBA中不仅可以使用程序本身内置的函数(如工作表函数或VBA函数),还可根据需求自定义函数以实现数据处理的要求。

1. 在如图的成绩表中,每项成绩占总成绩的25%,据此要计算出每项(平时、小考、期中、期末)的百分比成绩。

2. 在Excel中可以直接引用单元格作参数写出如图的公式,然后计算出每位学生各项成绩的百分比。

3. 在VBA中,我们也可以自定义一个函数来实现以上的公式计算。

打开Visual Basic,添加一个模块和函数(Function,与过程Sub-End Sub原理是相同的),称之为“计算成绩”。

4. 设自定义函数的参数为x,令函数等于参数乘以0.25,相当于在Excel表中通过单元格引用来进行公式计算。

5. 回到Excel工作表中,在H2单元格中输入“=计算成绩(D2)”,回车即可得到相应的结果。

6. 我们同样也可以在VBA中通过使用循环与上面自定义的函数来计算出所有项目的结果。

以上案例仅用于演示,更多实际应用请根据需求进行相应的调整。

喜欢的朋友请多多关注,感谢支持!

在下面这篇文章中将和大家分享一下在Excel VBA中如何自定义含有多个参数的函数。关于VBA中自定义函数的基本 *** 作,大家可以参考之前的一篇文章,如下:

Excel VBA系列之自定义函数 -

1. 在Excel工作表的A2单元格中有一个类似产品序列号的数据,需要通过VBA自定义函数取出年份和月份信息。

2. 打开Visual Basic,添加一个模块,定义一个函数“czf”,表示拆字符。

3. 为自定义函数添加三个参数,两个字符类型,一个整数类型;这里可以根据实际需要自行设置参数。

4. 定义此函数时,使用Split函数对其参数进行拆分;因为这里是要将一个序列号中的信息提取出来。

关于Split函数,可参考文章: Excel VBA系列之Split函数 -

5. 自定义函数完成后,回到Excel工作表中,在B2单元格使用该自定义函数,输入“=czf(A2, "-",2)”,获取年份信息。

6. 使用自定义函数“czf”也可以获取月份信息。

7. 使用自定义函数“czf”将两个时间信息进行合并。

以上案例仅用于演示,更多实际应用请根据需求进行相应的调整。

喜欢的朋友请多多关注,感谢支持!

如图:C4=IF(B4<>"",$F$1,"")

我把它往下拖动几格,下方的格也有了函数,如C5=IF(B5<>"",$F$1,"")等

但我想让C4下的所有单元格都有相应的函数,手工拖动就不实际了,所以想在VBA中加入这个功能。

除了C列需要这样外,D列也要,如D4下所有单元格也加入“选中D4往下拖的功能”

补充一下,我是想直接用VBA来实现这个功能,用到单元格的时候执行相应的函数就行了,不用往单元格里插入函数,这样也可大大减小文件体积。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11296478.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存