我有一些生成 Word、Excel 或 PDF 文档的函数。例如,我正在处理的是将报告导出为 PDF 文件。关闭报告后,它会打开另一个使用 LiveCycle ES 8.2 创建的 PDF 表单,并使用数据库中的数据填充该表单。此后,文档关闭,但由于某种原因,Acrobat 实例仍然在前台打开,没有打开任何文档。
这是代码:
DoCmd.OpenReport "myReport", acViewPreview
DoCmd.OutputTo acOutputReport, "", acFormatPDF, "C:\myReport.pdf", False
DoCmd.Close acReport, "myReport"
Dim gApp, avDoc, pdDoc, jso
Set gApp = CreateObject("AcroExch.app")
Set avDoc = CreateObject("AcroExch.AVDoc")
If avDoc.Open(exprPDF, "") Then
Set pdDoc = avDoc.GetPDDoc()
Set jso = pdDoc.GetJSObject
'[...]
pdDoc.Save PDSaveIncremental, FileNm 'Save changes to the PDF document
pdDoc.Close 'Close the PDF document
End If
avDoc.Close (True)
Set gApp = Nothing
Set avDoc = Nothing
myReport 永远不会打开任何 Acrobat 实例。 avDoc.Open
行确实如此。我希望在执行 avDoc.close
时关闭 Acrobat。有什么想法吗?
最佳答案
我认为你应该添加:
gApp.Exit
之前
Set gApp = Nothing
这似乎有效,但该应用程序仍然存在,隐藏...要真正杀死 Acrobat,请在此处使用“Acrobat.exe”尝试此方法: How can I kill task manager processes through VBA code? 这个方法有点像大锤,但很有效。
关于excel - 关闭最后一个文档后关闭应用程序(Acrobat、Word、Excel),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13705590/