当我运行一个耗时 30 多分钟的 Excel 子程序时,我注意到在任务管理器中,Excel 仅使用了 35% 到 55% 的 CPU。
我相信如果以某种方式增加 CPU 使用率,该过程将花费更少的时间。有没有办法增加 Excel 或任何应用程序的 CPU 使用率?
我在 64 位 Windows 10 Pro 上运行 64 位 Office。
答案1
不幸的是,您寻求的答案不是您想要的。
虽然 Excel 工作表在多个线程上计算并且可以利用高达 100% 的 CPU,但 Excel 宏仅在单个线程上运行。
如果大多数处理不可避免地在 VBA 中进行,则可以修改代码以提高性能。
答案2
即使在没有运行宏/子程序时,我也遇到了同样的问题,并解决了它。也许其他人也遇到了类似的问题,需要解决方案。任务管理器显示 Excel 只使用了大约 10% 的 CPU,用于处理一个非常大且公式密集的电子表格。当我启动它时,它花了 5 分钟来计算(我使用手动计算模式)。更糟糕的是,在表格中插入一行花了几个小时。我运行的是 64 位 Excel 365。
我做了两件事来解决这个问题。也许是下面的第二步(增加 Excel 优先级)单独解决了这个问题,我不确定。该步骤是上面建议的,似乎它没有解决加快其他人的宏处理的问题,所以我假设它可能也没有帮助我(如果我单独做了那一步)。我在尝试解决这个问题时读到了这个帖子,并没有单独尝试第二步(或第一步)。如果这对你不起作用,那么请尝试下面的所有步骤。可能是组合才是关键。
确保在当前选择的“电源计划”设置的“电源选项”的“高级设置”下的“处理器电源管理”下将“最大处理器状态”设置为 100%。如果您在电源计划的高级设置下没有看到处理器电源管理设置,则必须添加它。请参阅此链接“为什么我的电源选项下没有处理器电源管理?”以获取有关如何执行此操作的说明: https://answers.microsoft.com/en-us/windows/forum/all/why-am-i-missing-the-processor-power-management/f5e30954-1843-464e-838b-015cc21d3ebd。我必须这样做,包括修改我的注册表。注意:当我第一次修改注册表时,我无法在指定的位置添加属性 DWORD。所以我以管理员模式运行编辑器(虽然这似乎一开始也不起作用......但当我再次尝试时它起作用了......我不知道为什么)。
按照 IUnknown 上面给出的说明,在任务管理器中将 Excel 的优先级设置为“高”。
我不需要这样做,因为 Excel 已经为我设置了这一点。但是,您应该确保您的 Excel 功能区“文件/选项/高级/公式/启用多线程计算设置”设置为“使用此计算机上的所有处理器”。在我的情况下,这个数字是 16。
然后,任务管理器中的 Excel CPU 使用率跃升至 98%!我希望这可以帮助那些在简单计算电子表格时遇到此问题的人(即,该问题与宏无关)。