【问题标题】:multi thread in Excel 2007 [duplicate]Excel 2007中的多线程[重复]
【发布时间】: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 内核)

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    虽然 Excel 2007 计算引擎支持多线程,但 Excel VBA 不支持。

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

    【讨论】:

      猜你喜欢
      • 2013-01-18
      • 2018-09-17
      • 2011-12-27
      • 2013-01-13
      • 1970-01-01
      • 2011-01-26
      • 2023-03-19
      • 1970-01-01
      • 2011-12-26
      相关资源
      最近更新 更多