将范围导出为 PDF 而不保存

Posted

技术标签:

【中文标题】将范围导出为 PDF 而不保存【英文标题】:Export range to PDF without saving 【发布时间】:2019-03-08 04:46:40 【问题描述】:

我发现了一些有效的 VBA 脚本:

Sub ExportToPDF()

    With Sheets("Results").Range("B10:J100")
        .ExportAsFixedFormat _
            Type:=xlTypePDF, _
            FileName:="C:\Export.pdf", _
            Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, _
            OpenAfterPublish:=True
    End With

End Sub

我仍在学习 VBA,我实际上不需要将范围保存为单独的文件,我只是希望将所选范围作为打开的 PDF 发布。

我不知道如何修改上面的代码

【问题讨论】:

你试过那个代码了吗?你说你想要什么就是什么。 “我实际上不需要将该范围保存为单独的文件,我只是希望将所选范围作为打开的 PDF 发布” ...嗯......所以你的意思是你可以让PDF按预期显示,但你不想保留文件'Export.pdf'?我认为您唯一的做法是创建文件,然后在完成后将其删除...请参见此处:***.com/q/67835/3451115 你不能直接发布到 PDF 查看器,因为其他 cmets 也解释了文件需要保存然后打开,如果你不想要它永久然后在End With你之后删除它可以通过将其放在那里:kill("C:\Users\tjb1\Desktop\Export.pdf") 或使用其他一些方法,如此处列出的 FileSystemObject 方法:***.com/questions/67835/deleting-a-file-in-vba 问题是这个excel文件会被多个用户使用,所以每个用户的FileName路径都不一样 所以把它保存到每个人都可以使用的网络共享...? 【参考方案1】:

之后

End With

在您的代码中,您可以添加

CreateObject("Shell.Application").Open ("C:\Users\tjb1\Desktop\Export.pdf")

该代码对我有用。

祝你好运!

【讨论】:

但是 VBA 代码已经在这里打开了文件:OpenAfterPublish:=True【参考方案2】:

要导出为 PDF,必须将文件保存到驱动器。对于将由多个用户使用的电子表格,VBA 脚本中的FileName 必须是所有用户都可以访问的通用驱动器。

【讨论】:

以上是关于将范围导出为 PDF 而不保存的主要内容,如果未能解决你的问题,请参考以下文章

以横向和动态范围保存 PDF

有啥方法可以将 Kivy 相机照片保存为 base64 而不将其导出为 png?

能把网页中打开的pdf文件直接保存下来而不使用下载吗?

生成pdf而不将其保存到磁盘然后将其显示给浏览器

使用 SelectPdf .NET 在电子邮件中附加 pdf 而不保存 PDF

chrome保存pdf位置