另存为 PDF 并在 Adob​​e Reader 中作为新标签打开

Posted

技术标签:

【中文标题】另存为 PDF 并在 Adob​​e Reader 中作为新标签打开【英文标题】:SaveAs PDF and open in Adobe Reader as new Tab 【发布时间】:2022-01-01 22:21:02 【问题描述】:

我遇到了以下问题。要将 Excel 工作表另存为 PDF,我使用以下代码。

ActiveSheet.ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=True

这在我第一次执行命令时工作得很好。文件以 PDF 格式弹出并显示在 Adob​​e Acrobat Reader DC 中。但是当我再次执行它时,没有关闭打开的 PDF 文件,我得到了一个错误。只要我总是关闭旧的PDF,就没有错误。我很确定可以在 Acrobat Reader 的新选项卡中打开下一个文件,而不会在 VBA 中出现这些错误。有人可以帮我吗?

【问题讨论】:

可以,但必须有不同的名称。请看我的回答。 【参考方案1】:

同名文件,不能在大多数应用程序的同一会话中打开...

请使用下一种方式,它给出不同的名称并在三个连续的选项卡中打开同一个工作表:

Sub expSheetAsPDFAndOpen()
   Dim strPDF As String, i As Long
   strPDF = ThisWorkbook.path & "\MyPDF"
   For i = 1 To 3
        ActiveSheet.ExportAsFixedFormat _
             Type:=xlTypePDF, _
             Quality:=xlQualityStandard, _
             IncludeDocProperties:=True, _
             IgnorePrintAreas:=False, _
             FileName:=strPDF & i & ".pdf", _
             OpenAfterPublish:=True
  Next i
End Sub

我想您不要尝试导出同一张工作表。在这种情况下,您可以使用工作表名称(唯一)来命名导出的 pdf。

【讨论】:

它可以在谷歌浏览器中(文件被覆盖并在单独的选项卡中打开)。可能是 Acrobat Reader 中的错误。 @Kostas K. Chrome 更好,它允许多次打开同一页面,就像任何浏览器一样...当尝试以这种方式导出时(不提供名称),VBA 使用工作簿名称并且 Acrobat Reader、Acrobat Pro 等不允许打开具有相同全名的文件。我是否应该理解在您的情况下,Acrobat reader 能够两次打开同名的文档?甚至手动?如果是这样,我的 Acrobat Pro 就无法忍受了... :) 无论如何,我将编辑和编写几乎所有应用程序。 啊,您的答案无需更改,完全有效。 Chrome 是一个例外,因为它是一个浏览器并且不会锁定文件以进行编辑。 :) @Kostas 它是一个浏览器,但仍然是一个应用程序... :)

以上是关于另存为 PDF 并在 Adob​​e Reader 中作为新标签打开的主要内容,如果未能解决你的问题,请参考以下文章

通过 c# 中的进程保存在 Adob​​e Reader 中打开的 pdf 文件

带有可填写表单域的 PDF +“另存为”=带有固定文本的 PDF - 如何?

pdf文件中的“另存为”框

从 Adob​​e Reader 的 ActiveX 控件获取 PDF 文档的页码

我的 ActiveX 控件如何在 Internet Explorer 中接管打印、另存为、查找等?

使用 VBA 和 Adob​​e PDF Reader 控件复制选定的文本