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

Ant*_*mel 3 excel cpu-usage

众所周知,VBA只能同时处理一个处理器,因此当我运行宏时,Excel只使用50%的CPU而不是完全(双核).

是否有解决方法使VBA使用两个处理器?

谢谢.

Cha*_*ams 6

除非您在多个Excel实例之间拆分工作负载并在最后重新组合结果,否则答案是否定的.

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

  • 关闭屏幕更新
  • 将计算设置为手动
  • 使用大范围和变体数组而不是逐个单元读取和写入Excel数据
  • 仔细查看VBA UDF中的编码并绕过VBE刷新错误
  • 最小化对Excel对象模型的调用次数


小智 5

您可以在Excel.Applications的多个实例中分解问题,这样您可以在Excel的一个副本中进行一半,在另一个副本中进行一半.

我见过有人在使用8核的Excel VBA中进行模拟工作.最后将结果重新组合起来有点痛苦,但它确实奏效了.