明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 9281|回复: 8

用VB控制word打印后怎么关闭word

[复制链接]
发表于 2007-3-29 11:43:00 | 显示全部楼层 |阅读模式

我用VB控制word用.printout方法发送打印后就用wdapp.quit结束了word,但打印机中却没有收到,之后我去掉了wdapp.quit这句就可以打印了,但是进程中却有winword.exe一直在运行,请问怎么才能在发送打印后关掉word程序?大虾帮忙阿,谢谢先

以下是我的程序:

Set WordApp = GetObject(, "Word.Application")
   If Err Then
      Err.Clear
      Set WordApp = CreateObject("Word.Application")
      If Err Then
         Err.Clear
         MsgBox "无法启动Word,请检查是否正确安装!"
         Exit Sub
      End If
   End If
    Set WordDoc = WordApp.Documents.Open(List1.List(i))
   WordDoc.PrintOut
   Printer.EndDoc
   If Err Then
      MsgBox Err.Description
      Err.Clear
   End If
   WordDoc.Close False
   List2.AddItem "正在将'" & List1.List(i) & "'发送至" & Printer.DeviceName
   
   WordApp.Quit False     '就是这句,去掉就能打印,但进程中winword.exe就会一直运行,若保留就不能打印

   Set WordApp = Nothing

发表于 2007-3-29 18:58:00 | 显示全部楼层
wordapp.close
发表于 2007-3-29 18:59:00 | 显示全部楼层
wordapp.close
 楼主| 发表于 2007-3-31 00:33:00 | 显示全部楼层

不行啊,说“未找到数据成员或方法”,close方法worddoc有,wordapp没有啊,怎么办啊,请教大虾们啊,非常急

发表于 2007-4-10 16:09:00 | 显示全部楼层

'关闭Word
WordDoc.Close
WordApp.Documents.Close
WordApp.Quit
Set WordDoc = Nothing
Set WordApp = Nothing

我没有用Word进行打印,只是打开进行修改之后再将其关闭,能结束进程中的winword.exe。你可以试试

发表于 2007-10-27 01:34:00 | 显示全部楼层
我觉得你在 "WordApp.Quit False" 这句之前加一句 " msgbox "正在打印中",,"提示信息"  "这条语句,等打印完了,再点“确定”,就会执行 "WordApp.Quit False" 这条语句了。
发表于 2009-3-31 11:17:00 | 显示全部楼层

谢谢楼上 再补充下

oWord:Word.Application  
  oWord.ActiveDocument.BuiltInDocumentProperties(Index).value  
   
  Index=1   标题(Title)  
  Index=2   主题(Subject)  
  Index=3   作者(Author)  
  Index=4   关键词(Keywords)  
  Index=5   备注(Comments)  
  Index=6   模板(Template)  
  Index=7   单位(Last   author)

---------------------------------------------------------------------------

uses  
        ComObj  
   
  function   IsFileInUse(const   FileName:String):Boolean;  
  var  
        FileStrm:TFileStream;  
  begin  
        Result:=false;  
        try  
              FileStrm:=TFileStream.Create(FileName,fmOpenReadWrite);  
              FileStrm.Free;  
        except  
              Result:=true;  
        end;  
  end;  
   
  procedure   TForm1.Button1Click(Sender:   TObject);  
  var  
        oWord:OleVariant;  
        FileName:String;  
  begin  
      FileName:='C:\Documents   and   Settings\Administrator\Desktop\料品库存异动汇总表.doc';  
      if   not   FileExists(FileName)   then   exit;  
      if   IsFileInUse(FileName)   then   exit;//检查文件是否被打开,否则不能修改  
      oword   :=   CreateOLEObject('Word.Application');  
      Sleep(100);//等待Word启动  
      oword.documents.open(FileName);  
      oWord.ActiveDocument.BuiltInDocumentProperties(1):='测试修改Word文档属性';   //标题(Title)  
      oWord.ActiveDocument.BuiltInDocumentProperties(2):='修改Word相关信息';           //主题(Subject)  
      oWord.ActiveDocument.BuiltInDocumentProperties(3):='最好玩滴那个';                   //作者(Author)  
      oWord.ActiveDocument.BuiltInDocumentProperties(4):='修改   文档   属性';               //关键词(Keywords)  
      oWord.ActiveDocument.BuiltInDocumentProperties(5):='就是最好玩滴那个干滴好事啦,嘻嘻';//备注(Comments)  
      //oWord.ActiveDocument.BuiltInDocumentProperties(6)   //模板(Template)  
      oWord.ActiveDocument.BuiltInDocumentProperties(7):='不记得是在哪个单位了';   //单位(Last   author)  
      oword.ActiveDocument.Save;  
      oword.quit;  
  end;  

发表于 2009-3-31 11:31:00 | 显示全部楼层
本帖最后由 作者 于 2009-4-2 19:48:57 编辑

我在VB中用VBA在后台调出word文档并用printout打印,并在完成后关闭word。但出现一个问题就是,如果调出
的word文档页码很多,在我关闭时还来不及输出到打打印机,word就会提示:word正在打印。如果退出word,会
取消所有未完成的打印作业。是否要退出word。我如何才能知道打印输出完成了,这时我才去关闭word。  
  VBA代码:  
          ActiveDocument.PrintOut  
  '在这里检测并等待word打印输出完毕。就是不知怎么做。  
          ActiveWindow.Close  
          Application.Quit.
解决方法
XXXXXXXXX.PrintOut   Background:=False 

    Set wb = ThisWorkbook
    With wb
        [a1] = .Title '标题
        [a2] = .Subject '主题
        [a3] = .Author '作者
    End With

发表于 2009-3-31 13:41:00 | 显示全部楼层

采用后台打印

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 05:50 , Processed in 0.177707 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表