Excel 2007中的multithreading

在Excel 2007中运行具有某种级别的并发性的macros时遇到问题/问题。

这是我的情况。
(1)我正在使用Excel 2007
(2)我的电脑是英特尔双核。
(3)对于这个testing,macros很简单,并定义在一个模块中。

声明子睡眠库“kernel32”(ByVal dwMilliseconds As Long)

函数simple_macro()睡眠1000 simple_macro =“hello world”End Function

(4)在工作表中填充100 x 100个单元格中的“= simple_macro()”。

(5)无论我启用还是禁用选项中的multithreadingfunction,完成处理macros所花费的时间都是相同的。 它看起来像Excel调度程序线性评估细胞…

如果我的macros正在做一些cpu密集型处理是可以理解的,但正如你所看到的那样,它非常简单,每个单元都是独立于其他单元的,因此它应该在几秒钟内完成。

你有任何build议来同时评估细胞? Excel 2007是否支持multithreading? (例如,在评估时充分利用多个CPU核心)

虽然Excel 2007计算引擎支持multithreading,但Excel VBA不支持。

因此用VBA编写的用户定义的函数被视为不是Excel的线程安全。