Excel上的VBA只使用一个处理器,我该如何使用更多?

已知VBA只能同时在一个处理器上工作,所以当我运行一个macros时,Excel只使用了50%的CPU而不是完全的(双核)。

有没有一种解决方法,使VBA使用两个处理器?

谢谢。

你可以把问题分解成Excel.Applications的多个实例,这样你可以在Excel的一个副本中做一半,在另一个副本中做一半。

我见过有人在使用8核心的Excel VBA中进行模拟工作。 最后让结果重新回到原来的位置有点痛苦,但是它很有效。

答案是否定的,除非您将工作负载分配到多个Excel实例,并在最后重新组合结果。

但绝大多数缓慢的VBA执行的情况可以加快几个数量级:

  • closures屏幕更新
  • 将计算设置为手动
  • 使用大范围和变体数组读取和写入excel数据,而不是逐个单元格
  • 仔细查看VBA UDF中的代码并绕过VBE刷新错误
  • 最大限度地减less对Excel对象模型的调用次数

在Excel 2010中转到文件 – >选项 – >高级。 向下滚动,直到看到公式部分,您可以设置计算公式时使用的处理器数量。 这可能对VBA没有影响,但它可以用于在整个列中运行公式。 在处理大型工作簿时节省大量时间。 此外,您可以去任务pipe理器,右键单击Excel,并将优先级设置为高,以便您的机器将精力集中在那里。

**此选项似乎不适用于Mac **

Interesting Posts