【发布时间】:2016-04-16 00:20:44
【问题描述】:
我们公司大约在 6 个月前升级到办公室 2013。我有导入 CSV 文件、执行计算和更新图表的预先存在的代码。自 2013 年升级以来,在运行 Excel VBA 代码时,其他 Office 2013 程序(例如 Word、Outlook)在 VBA 代码完成之前对鼠标或键盘输入无响应。有趣的是,PowerPoint 似乎没有受到影响。在我的 VBA 代码中,我使用了典型的加速技术:application.windowstate=xlMinimized,使用手动计算,并关闭屏幕更新。我在堆栈溢出 (Application.Screenupdating = false affects all of office) 中遇到一页,表明屏幕更新设置为 false 是一个潜在问题。我尝试按照该链接和许多其他人的建议来修改我的代码,以便在宏运行时 Word 和 Outlook 仍然有效。这包括使用“Excel”。前缀(例如,Excel.Application.ScreenUpdating=False),使窗口最大化,使用“Excel.Application.Windows(ThisWorkbook.Name).WindowState =xlMinimized,等等。我没有尝试过消除 Excel VBA 对其他Office应用程序。我从根本上不明白为什么Office(显然)如此交织在一起,以至于一个应用程序会对其他应用程序产生不利影响。我在Office 2010或更早版本中没有看到这种影响。任何有用的见解将不胜感激。
【问题讨论】:
-
您是否关闭了 Office 2013 安装中默认打开的所有“花里胡哨”的废话? Alt+F,T 然后关闭动画、翻页和其他与计算数字无关的操作。
-
我查看了 Excel 选项,没有看到任何关于动画的内容。在高级选项下,我禁用了硬件图形加速。此外,在控制面板/轻松访问中心/更容易专注于任务/我选择了关闭所有不必要的动画。我也试过关闭多线程。无济于事。问题(请原谅我的无知):如果 VBA 正在运行并且屏幕更新设置为 false - 为什么涉及用户界面的花里胡哨会造成任何影响?谢谢!