如何利用excel VBA生成PDF文件

通过按钮单击实现,谢谢

首先,加载引用,如图

然后,在打印机中对Acrobat Distiller的打印进行设置设置(必须,否则转化出错!)

Public Sub MakePDF(ByVal strPDFFileName As String)

            Dim strPSFileName As String

            Dim xlWorksheet As Worksheet

            Dim objPdfDistiller As PdfDistiller

             strPSFileName = Left(strPDFFileName, InStrRev(strPDFFileName, "/")) & "tmpPostScript.ps"

              Set xlWorksheet = ActiveSheet

            Call xlWorksheet.PrintOut(copies:=1, preview:=False, ActivePrinter:="Acrobat Distiller", printtofile:=True, collate:=True, prtofilename:=strPSFileName)

              Set objPdfDistiller = New PdfDistiller

            Call objPdfDistiller.FileToPDF(strPSFileName, strPDFFileName, "")

             Call Kill(strPSFileName)

         End Sub


不明白为什么不用PDF插件直接生成PDF文档?

追问

想在不同的计算机实现以上功能,插件的话需要多安装一个程序。谢谢您,我试一下。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-03-31

首先,加载引用,如图

然后,在打印机中对Acrobat Distiller的打印进行设置设置(必须,否则转化出错!)

Public Sub MakePDF(ByVal strPDFFileName As String)

Dim strPSFileName As String

Dim xlWorksheet As Worksheet

Dim objPdfDistiller As PdfDistiller

strPSFileName = Left(strPDFFileName, InStrRev(strPDFFileName, "/")) & "tmpPostScript.ps"

Set xlWorksheet = ActiveSheet

Call xlWorksheet.PrintOut(copies:=1, preview:=False, ActivePrinter:="Acrobat Distiller", printtofile:=True, collate:=True, prtofilename:=strPSFileName)

Set objPdfDistiller = New PdfDistiller

Call objPdfDistiller.FileToPDF(strPSFileName, strPDFFileName, "")

Call Kill(strPSFileName)

End Sub

本回答被网友采纳
第2个回答  2013-10-23
Sub test()
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Documents and Settings\Administrator\桌面\test.pdf"
End Sub


EXCEL 2010完美测试通过。PDF默认保存位置为桌面,名字叫TEST,名字路径你可以直接改下。


要发布的工作表也可以改。

追问

太给力了!!2007也能用,我想额外请问您,当我在用户窗体中插入FLASH,进入窗体时就出现了,如下的警告(此文档进入的内容可能对您的计算机有害),不知道您能不能帮忙修改。

追答

看不到东西与提示,最好有附件或图片。

追问

昨天没传上去,您看就是这个,我不知道怎么调整设置才能消除这个警告。

追答

我放FALSE正常呢,没有提示。是不是系统设定啊。

本回答被提问者和网友采纳
第3个回答  2020-07-17

怎样用excel做出PDF文件

第4个回答  2013-10-23
生成PDF不用VBA,EXCEL本身就自带有这个功能,“另存为”——PDF格式,可以通过弹出的保存框中“选项”设置转换属性。
相似回答