我有一个相当重的 Excel 宏。当它运行时,Outlook 冻结。
我知道它没有使用所有的 CPU 功率,因为
a) 我有一台强大的多核机器
b)我的所有其他程序(甚至是重型程序)都运行良好。
Outlook 和 Excel 似乎正在共享 Excel 占用的进程。
我的宏不执行任何与 Outlook 相关的操作,至少是无意执行的。它从彭博社获取数据并进行一些计算。
我很感激这匹马已经离开了畜栏……但是,我也经历过这种情况,并且我的代码中没有引用 Outlook 模型。我还注意到,当另一个 Excel 实例中的宏正在运行时,我的 Excel 被锁定。
要解决此问题,您需要添加一个
DOEVENTS
行到您的代码,引用 MSDN 站点
DoEvents将控制权传递给操作系统。控制权已返回
当操作系统处理完它的事件后
队列
将 DOEVENTS 行放在哪里很大程度上取决于您的代码,但在我进行大量 SQL 调用的相当重的宏中,我将其放置在每个 SQL 调用之前,这似乎运行良好。让我可以在一个 Excel 实例中非常愉快地工作,同时后台实例执行大量 SQL 获取。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)