vba中一个function只能自定义一个公式吗

发布时间:2019-07-29 18:54:11

如题,vba中一个function只能自定义一个公式吗?想定义多个公式,每个公式写一个function感觉看着很累赘,请教各位大神是否有好的办法?谢谢各位!

推荐回答

一个function当然只能是一个函数

一个个写function正常(一个工程有成千上百个函数很正常的)

一个函数是完成一功能的,不同函数就是要用不同function的

其他回答

1 一个function是可以定义多个公式的:

不过,一个function只能有一个返回值,就是函数名称;

所以,对于相同类型[如同为数值,或日期、或字符],或可以互为表达[如数值与布尔型]的类型,可以在输入变量中增加一个"旗标"变量,比如flag;

在function内判断,当flag=1,2,3......时,分别计算公式一、二、三......,所有公式均通过function函数名返回即可;

即便是返回数据相差很大的,比如一个公式返回单个数字,另一个公式需要返回一串数字的,也可以通过在function内的赋值语句,直接把结果"写到"工作表的单元格内,比如:

Worksheets("Sheet1").cells(1,2)=......

不过,这种做法有可能在工作表不能及时更新的情况在引起该些单元格的后续计算出问题,需要适时加上"强迫计算"语句Calculate,令其"强迫更新";还要谨慎留意;

以上方法,或称"取巧",也许能实施,但不建议使用,至少在大数据量运算中不建议;

原因:

1 编程讲究的是"结构化",要易于理解及调试纠错;况且几个月后,自己都不记得当时的"巧妙"之处,到时想做一些更改或复制引用,都要花很大力气取理解回原来的"得意巧做",得不偿失;

2 VBA是逐行解析、执行的,效率低下,这样做没有多大的"副作用";可将来或会继续使用其他程序语言编程,对于稍微高级一点的语言,都是先整体编译、后执行运算的,结构化的拆分单独的函数,有利于简化编译程序、节省内存、以及节省计算时间,特别是计算量大的程序,效果会极度明显。

可以很多的呀,但是名称不能一样。

以上问题属网友观点,不代表本站立场,仅供参考!