EXCEL 宏 有时运行慢

这个问题在office 2003\2007中均存在,同一段代码,有时运行非常流畅,有时特别慢,即使处理的数据是相同的。将该EXCEL文件关闭,重新打开可恢复正常,但一段时间后又会变慢。这种情况经常出现在打开另外的窗口之后,而且还可能造成EXCEL程序停止响应,只有将其失去焦点、然后恢复窗口才可能非常。
我编了许多代码,都存在这个问题,主要是从数据库中提取数据(使用Recordset对象)在EXCEL表中显示,无论是从SQL SERVER 还是Access,也无论是从本地还是从远程,均试验过,都会出现该问题。在引用中用DAO 3.6或ADO 2.8都一样。实际代码较长,因补充问题500字限制,不便提供。程序的主要结构就是利用Do循环,将Recordset对象逐行逐字段显示在EXCEL的单元格中。 与杀毒软件无关。
问题已解决,去掉“自动计算分页符”即可。

根据楼主描述的情况,比较像是自动运算的问题,也就是说,你在循环过程中,将recordset对象逐个写入单元格,此时,都会触发excel的自动运算,特别是打开了多个包含公式的文件时。

解决办法是:运行你的整段代码前,特别是循环,先将自动运算关闭,待代码完成后,再更改为自动运算,提供一段代码供参考。

设置为手动计算:
With Application
.Calculation = xlManual
.MaxChange = 0.001
End With

设置为自动计算:
With Application
.Calculation = xlAutomatic
.MaxChange = 0.001
End With
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-03-16
用360杀毒杀了吧,那个和病毒没什么区别,搞的电脑网速超慢,一个表格就是几M大,用起来累.
第2个回答  2010-03-16
程序变慢的原因有很多,根据你的说明来看,程序里面使用的内存没有清空的可能性比较大,具体要看到代码才知道.

打开别的窗口,程序停止响应是vba代码问题,从sheet里面参照时,用了active的原因,改成文件名参照应该可以解决问题.
第3个回答  2010-03-16
代码贴出来看看。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网