各位大侠:我有一个VBA程序,由于需要打开多个数据,使用很多数据库查询, CPU100%运行,需要几分钟才能完成。这几分钟里,电脑就像死机那样,不能做什么。是否有方法可以控制运行的速度,且不让电脑死机。
doevents命令可以吗?各位高手指点一下,谢谢。

解决方案 »

  1.   

    doevents命令可以吗?
    你自己试试不就知道了,别人又没你代码
      

  2.   

    还可以考虑在头尾分别加入
        Application.ScreenUpdating = False
        Application.Interactive = False
    '...
        Application.ScreenUpdating = True
        Application.Interactive = True
      

  3.   

    for循环里加
    doevents可以的
      

  4.   

    首先支持下4楼和9楼的方案,一定可行的,
    下面发表一点本人的看法……
    楼主要的是什么?假设一个程序有100条记录操作,首先你的程序从1-100条,暂用CPU100% 2秒完成
    4楼-9楼的方法CPU占用未知,当然不是满的,结束时间未知,
    而你想让程序按照你的要求时间完成,假设你要求100条记录完成时间为10分钟,或者8分钟,这种情况是可以的,但是条件是在最高运行速度下,需要10分钟完成的工作,你想让他9分钟完成时不可能的……所以你的时间要选在10分钟以上,这样一来,好像定时就没有什么意义了吧……
      

  5.   


    我的情况是这样的:
    我有10几个这样的Excell表,每个表是单独运行的,一次需要1~3分钟,
    我想将这10几个连接起来,一次运行,因此,可能要10~30分钟。
    我不希望运行时,电脑死在那里,什么都不能做。
    至少我还可以看看小说,复复邮件……
    所以,完成时间即使长点也无所谓。