当我们使用VBA向MS-Excel添加UDF时,该函数在插入时被求值两次:
1)一旦在函数参数对话框中给了函数所有的参数,结果就会在函数参数对话框中显示为公式结果
2)在函数参数对话框中单击OK后:因此结果显示在相应的单元格中。
我也提到停止VBA评估从调用目标函数两次,但它使函数不得到评估。
我能知道一种停止对UDF函数进行双重求值的方法吗?
谢谢
如果双重求值的问题是速度方面的考虑(UDF需要很长时间来计算),那么我建议如下:
- 向UDF添加一个名为
doCalculate
的额外参数 - 在工作表 单元格A1中设置FALSE
- 将UDF
doCalculate
参数指向单元格A1 - 添加一行代码,当
doCalculate
为false时退出函数
这样UDF就不会从函数对话框中计算。但是,您可以通过将A1更改为TRUE来激活UDF