类模块有myword,mydoc的定义:
窗体代码如下:
for i=1 to 10
Set mydoc = myword.Documents.Open(......)'文档名和I有关!
Set mytable = mydoc.Tables(1)
    mydoc.Saved = True 'true代表不保存 
                           mydoc.PrintOut
                           mydoc.Close
                           Set mydoc = Nothing
                           Set myword = Nothing
                           myword.Quit
next i现在问题是这样的!每个循环都会在系统后台产生一个winword的进程(按下 Ctrl+Alt+Del 查看),  这样的话最终会导致系统死机!可是我不明白的是为什么我都set nothing 了!怎么还会有winword的进程啊?哪位高手帮忙解答一下哦!

解决方案 »

  1.   

    我是这么写的,你试一试:
    myworddoc.Close
    mywordapp.Quit
    Set myworddoc = Nothing
    Set mywordapp = Nothing
      

  2.   

    楼上的:这样的话就会弹出一个对话框:word正在打印,如果退出word就会取消尚未完成的作业!“还是不行啊?
      

  3.   

    myworddoc.Close
    Set myworddoc = Nothing
    mywordapp.Quit
    Set mywordapp = Nothing
    行不行都要分
      

  4.   

    主要是函数还没运行完呢,自然等不到 MYWORDDOC.CLOSE了
    这样
      

  5.   

    hsdly说是对的
    mywordapp只是定义一个引用你先set nothing之后quit就没用了,实际上程序并没有推出
    两个对调一下就对了
    你这样会更好一点,在循环之后,再把myword关掉
    for i=1 to 10
    Set mydoc = myword.Documents.Open(......)'文档名和I有关!
    Set mytable = mydoc.Tables(1)
        mydoc.Saved = True 'true代表不保存 
                               mydoc.PrintOut
                               mydoc.Close
                               Set mydoc = Nothing
                            
    next i
       myword.Quit
       Set myword = Nothing
      

  6.   

    但是,把quit放在前面的话?就会提示“word正在打印,如果退出word就会取消尚未完成的作业”的对话眶啊!我实现的是后台打印,不希望有这样的对话框出现。
      

  7.   

    那可以打印完后quit嘛
    你可以把打印的代码贴出我们看看,帮你改改
      

  8.   

    没有打印代码啊!打印就是: mydoc.PrintOut啊!
      

  9.   

    我觉得为什么我们用word打印时,一打印就可以关闭word了,为什么就不会弹出这样的对话框呢?而现在我用VB调用word时,为什么就会提示啊?这应该是个解决问题的出路啊!高手帮帮忙啊!
      

  10.   

    晕……都没打印完怎么可以把word给关掉???
    你要么定义一个timer控件估计word已经打印完了再把word关了
    或者循环读取打印机判断打印机状态
    当打印完毕则退出word
      

  11.   

    你加一段延迟吧,这么写应该没有问题了
                mywordapp.PrintOut
                j = 0
                While (j < 100000)
                    j = j + 1
                Wend
                
                myworddoc.Close
                mywordapp.Quit
                Set myworddoc = Nothing
                Set mywordapp = Nothing
      

  12.   

    顶下,我以前用vb操作excel复制粘贴,总是在后台留下excel进程,可是去掉那段就可以关进程了,郁闷了好久,同行有方法吗?
      

  13.   

    在mydoc.PrintOut和mydoc.Close之间加一段判断打印机打印队列的程序,当打印机的打印序列为空的时候,结束就可以了