2013-03-14 94 views

回答

5

假设你有两个循环做大致相同的事情,C/C++是很有可能是要快,因为它将被编译为机器代码,而VBA具有VBA解释器和Excel本身的开销。如果您计划将编组数据复制到C/C++来执行循环,那么编组将会有一些开销;多少取决于你如何选择这样做。

但是,请不要选择平台,因为循环速度更快,请选择适合该解决方案的平台,并使您获得最高效率。

根据我的经验,这不是循环这是缓慢的,但什么是的循环,很慢。正如您大概已经发现的那样,在excel中逐个单元访问比直接数组访问要慢得多。

如果您需要知道要快多少,请衡量一下!用C或C++创建一个简单的VBA循环和一个等效的循环(或者尽可能的接近),看看哪一个更快(以及多少)。

+1

+1这个答案提出了测试解决方案以符合_your_编程风格的想法。 – 2013-03-14 14:36:02

+0

与Excel中的UDF相关的一个注意事项是,每次计算VBE标题栏时都会出现一个错误,这可能会导致UDF出现重大性能问题(即,您正在使用的递归函数从工作簿中的单元呼叫) – Karter 2013-03-14 14:58:43