速度,VBA VS Excel公式

一般来说,Excel的公式 更快有效的VBA代码 。 如果有一个任务可以通过让我们说

  • 100%的VBA代码或
  • 50%的VBA和50%的配方

跟第二个一起去会更好吗? 我从速度的angular度来问这个问题?

我写了很多VBAmacros。 最近我在我的项目中使用了更多的公式。 我一直在想,如果这是提高效率的正确方法。

对于一个简单的函数,一个内置的Excel公式可能会更快,因为它们当然是用C / C ++编写的,可以生成快速的本地代码。

VBA代码以.NET环境为目标,在运行之前必须进行分析和编译,这会增加一些开销。

但是对于复杂的嵌套公式,由于Excel不知道你的数据是什么样的,它必须在操作之前检查types,可能要经过整个数组的值,做一些内存分配等等。

在这种情况下,macros可能会更快,因为您可能对数据的外观有所了解,并且可以编写一些优化。

但是你无法确定,而且不同configuration或软件版本之间的性能会有所不同。 要确定的最好的方法是进行一些testing。

Excel函数可以在计算机中的核心/处理器数量上并行计算(这包括从Excel单元中调用的VBA函数)。 macros不会编译并在单个处理器上运行。 因此,如果与macros执行相同的计算,Excel函数往往会显着更快。 但是,正如#z所说的,这取决于你在做什么,就好像你知道数据是什么样的,然后你可以build立各种优化。