用VB控制word打印后怎么关闭word
<p>我用VB控制word用.printout方法发送打印后就用wdapp.quit结束了word,但打印机中却没有收到,之后我去掉了wdapp.quit这句就可以打印了,但是进程中却有winword.exe一直在运行,请问怎么才能在发送打印后关掉word程序?大虾帮忙阿,谢谢先</p><p>以下是我的程序:</p><p>Set WordApp = GetObject(, "Word.Application")<br/> If Err Then<br/> Err.Clear<br/> Set WordApp = CreateObject("Word.Application")<br/> If Err Then<br/> Err.Clear<br/> MsgBox "无法启动Word,请检查是否正确安装!"<br/> Exit Sub<br/> End If<br/> End If<br/> Set WordDoc = WordApp.Documents.Open(List1.List(i))<br/> WordDoc.PrintOut<br/> Printer.EndDoc<br/> If Err Then<br/> MsgBox Err.Description<br/> Err.Clear<br/> End If<br/> WordDoc.Close False<br/> List2.AddItem "正在将'" & List1.List(i) & "'发送至" & Printer.DeviceName<br/> <br/> WordApp.Quit False '<font color="#f70968" style="BACKGROUND-COLOR: #ffffff;">就是这句,去掉就能打印,但进程中winword.exe就会一直运行,若保留就不能打印</font></p><p> Set WordApp = Nothing</p> wordapp.close wordapp.close <p>不行啊,说“未找到数据成员或方法”,close方法worddoc有,wordapp没有啊,怎么办啊,请教大虾们啊,非常急</p> <p>'关闭Word<br/>WordDoc.Close<br/>WordApp.Documents.Close<br/>WordApp.Quit<br/>Set WordDoc = Nothing<br/>Set WordApp = Nothing</p><p>我没有用Word进行打印,只是打开进行修改之后再将其关闭,能结束进程中的<font color="#f70968">winword.exe</font>。你可以试试</p><p></p> 我觉得你在 "WordApp.Quit False" 这句之前加一句 " msgbox "正在打印中",,"提示信息" "这条语句,等打印完了,再点“确定”,就会执行 "WordApp.Quit False" 这条语句了。<br/> <p>谢谢楼上 再补充下</p><p>oWord:Word.Application <br/> oWord.ActiveDocument.BuiltInDocumentProperties(Index).value <br/> <br/> Index=1 标题(Title) <br/> Index=2 主题(Subject) <br/> Index=3 作者(Author) <br/> Index=4 关键词(Keywords) <br/> Index=5 备注(Comments) <br/> Index=6 模板(Template) <br/> Index=7 单位(Last author)</p><p>---------------------------------------------------------------------------</p><p>uses <br/> ComObj <br/> <br/> function IsFileInUse(const FileName:String):Boolean; <br/> var <br/> FileStrm:TFileStream; <br/> begin <br/> Result:=false; <br/> try <br/> FileStrm:=TFileStream.Create(FileName,fmOpenReadWrite); <br/> FileStrm.Free; <br/> except <br/> Result:=true; <br/> end; <br/> end; <br/> <br/> procedure TForm1.Button1Click(Sender: TObject); <br/> var <br/> oWord:OleVariant; <br/> FileName:String; <br/> begin <br/> FileName:='C:\Documents and Settings\Administrator\Desktop\料品库存异动汇总表.doc'; <br/> if not FileExists(FileName) then exit; <br/> if IsFileInUse(FileName) then exit;//检查文件是否被打开,否则不能修改 <br/> oword := CreateOLEObject('Word.Application'); <br/> Sleep(100);//等待Word启动 <br/> oword.documents.open(FileName); <br/> oWord.ActiveDocument.BuiltInDocumentProperties(1):='测试修改Word文档属性'; //标题(Title) <br/> oWord.ActiveDocument.BuiltInDocumentProperties(2):='修改Word相关信息'; //主题(Subject) <br/> oWord.ActiveDocument.BuiltInDocumentProperties(3):='最好玩滴那个'; //作者(Author) <br/> oWord.ActiveDocument.BuiltInDocumentProperties(4):='修改 文档 属性'; //关键词(Keywords) <br/> oWord.ActiveDocument.BuiltInDocumentProperties(5):='就是最好玩滴那个干滴好事啦,嘻嘻';//备注(Comments) <br/> //oWord.ActiveDocument.BuiltInDocumentProperties(6) //模板(Template) <br/> oWord.ActiveDocument.BuiltInDocumentProperties(7):='不记得是在哪个单位了'; //单位(Last author) <br/> oword.ActiveDocument.Save; <br/> oword.quit; <br/> end; </p> 本帖最后由 作者 于 2009-4-2 19:48:57 编辑 <br /><br /> <p>我在VB中用VBA在后台调出word文档并用printout打印,并在完成后关闭word。但出现一个问题就是,如果调出<br/>的word文档页码很多,在我关闭时还来不及输出到打打印机,word就会提示:word正在打印。如果退出word,会<br/>取消所有未完成的打印作业。是否要退出word。我如何才能知道打印输出完成了,这时我才去关闭word。 <br/> VBA代码: <br/> ActiveDocument.PrintOut <br/> '在这里检测并等待word打印输出完毕。就是不知怎么做。 <br/> ActiveWindow.Close <br/> Application.Quit. <br/>解决方法<br/>XXXXXXXXX.PrintOut Background:=False </p><p> Set wb = ThisWorkbook<br/> With wb<br/> = .Title '标题<br/> = .Subject '主题<br/> = .Author '作者<br/> End With</p> <p>采用后台打印</p>
页:
[1]