【发布时间】:2011-04-13 14:17:43
【问题描述】:
我对在 Excel 2007 中运行具有某种程度并发性的宏有疑问/问题。
这是我的情况。
(1) 我正在使用 Excel 2007
(2) 我的电脑是 Intel 双核。
(3) 对于本次测试,宏很简单,在一个模块中定义。
声明 Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
函数 simple_macro() 睡眠 1000 simple_macro = "你好世界" 结束函数
(4) 我在工作表的 100 x 100 单元格中填写“=simple_macro()”。
(5) 无论我在选项中启用还是禁用多线程功能,完成宏处理所需的时间都是相同的。看起来 Excel 调度程序正在线性评估单元格......
如果我的宏正在执行一些 CPU 密集型处理,这是可以理解的,但正如您所见,它非常简单,每个单元都独立于其他单元,因此它应该在几秒钟内完成。
您对同时评估单元格有什么建议吗? Excel 2007 是否支持多线程? (例如,在评估时充分利用多个 CPU 内核)
【问题讨论】: