在VBA中,您可以可以对待UDF名称,就像Dim
med变量一样。例如,使用函数名称作为变量时的注意事项
Function ADD(a, b) As Long
ADD = a
ADD = ADD + b
End Function
其中ADD
存储中间值以及最终结果。我的问题是;在这是怎么回事幕后而言,有存储号码/件数据的标准可变VS函数名变量之间的任何差别。
我担心,只要变量的变化,如果你使用的函数名,而不是仅在执行End Function
也许是调用该函数的程序得到更新。 IE浏览器。如果你有一些代码
answer = ADD(1, 2)
然后在内存answer
被写入两次,一次是当ADD = a
,一旦当ADD = ADD + b
。当然,我们没有看到这一点,因为答案是留下任何最终ADD
值
我问,因为我经常发现我建立使用一个中间变量阶段的函数的答案,然后传递给函数名本身,而是我可以直接写入函数名称。
E.g.
Function ADD(a, b) As Long
Dim tot As Long
tot = a
tot = tot + b
ADD = tot
End Function
vs第一个例子。他们acheive同样的事情,在第二个例子中tot
表示式的结果,所以我们需要在年底最后ADD = tot
线。对于速度,我想,以减少所做的任何写操作,那么有没有在速度方面的任何缺点,没有可读性使用第一种方法,而不是宣布中间体?
NB,澄清,这还不是全部的中间体,我只是意味着代表函数结果,并可以通过在代码的函数名来代替单一的中间。
@CallumDA,为什么标签编辑 - 我不认为这一定是做Excel中,它只是为了吸引正确的类的关注呢? – Greedo
是的,如果你不同意,随时删除它们。 – CallumDA
嗯,我已经找到了一个考虑因素;如果该函数返回一个数组,然后试图设置该数组的一个元素看起来就像试图调用该函数一样! VBA不喜欢那个 – Greedo