【问题标题】:Closing application (Acrobat, Word, Excel) after closing the last document关闭最后一个文档后关闭应用程序(Acrobat、Word、Excel)
【发布时间】:2012-11-22 05:41:57
【问题描述】:

我有一些函数可以生成 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.Close 并在avDoc 之后将gApp 设置为空,因此您不会试图通过打开/关闭项目来混淆事物顺序
  • 听起来你有不合理的期望。通常关闭文档不应关闭正在显示该文档的应用程序。是否有 gApp.Quit 方法或类似的方法?
  • @SeanCheshire 已经尝试将所有内容设置为空,但变化不大。至于 gApp.Close 和 gApp.Quit,这两个方法都存在并且什么都不做。我的脚本会填写 PDF 表单,然后保存。它必须对用户完全透明。

标签: excel vba ms-access ms-word acrobat


【解决方案1】:

我认为你应该补充:

gApp.Exit

之前

Set gApp = Nothing

这似乎可以打勾,但该应用程序仍然存在,隐藏...要真正杀死 Acrobat,请在此处使用“Acrobat.exe”尝试此方法: How can I kill task manager processes through VBA code? 这种方法有点像大锤,但确实有效。

【讨论】:

  • 老实说,我已经很多年没有在那个项目中工作了,现在我也不再做任何 VBA 了,但这可能对其他有类似问题的开发人员有用。
  • 我只是实际尝试了代码,但它似乎工作。更改并保存 50 个文档后,Acrobat 抱怨达到了可以打开的最大文档数,尽管没有明显打开的文档,而且我看到 Acrobat 程序在任务栏中出现和消失。我什至在退出语句之前添加了一个“gApp.CloseAllDocs”,只是为了确保...除了关闭 AVDoc 和 PDDoc。
【解决方案2】:

经过更多测试,我需要关闭和退出所有文档对象,以确保在没有剩余打开的文档时应用退出。

【讨论】:

    【解决方案3】:

    我刚刚遇到了同样的问题,找到了以下解决方案:

    AVDoc.Close (True)
    **AcroApp.Hide**
    
    Set AcroApp = Nothing
    Set AVDoc = Nothing
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-06
      • 1970-01-01
      • 2014-02-28
      相关资源
      最近更新 更多