Vba 使用带有预定义路径和文件名的Adobe PDF打印输出
我想从Excel宏模块打印嵌入Excel工作表中的启用宏的MS Word文档,其名称为SalaryPaycheck 我使用下面的代码:Vba 使用带有预定义路径和文件名的Adobe PDF打印输出,vba,excel,pdf,pdf-generation,Vba,Excel,Pdf,Pdf Generation,我想从Excel宏模块打印嵌入Excel工作表中的启用宏的MS Word文档,其名称为SalaryPaycheck 我使用下面的代码: Sub PrintIt() Dim objWord As Word.Application Dim objDoc As Word.Document Dim Oshp As Object Dim strCurrentPrinter As String ActiveSheet.OLEObjects("SalaryPaych
Sub PrintIt()
Dim objWord As Word.Application
Dim objDoc As Word.Document
Dim Oshp As Object
Dim strCurrentPrinter As String
ActiveSheet.OLEObjects("SalaryPaycheck").Activate
Set objWord = GetObject(, "Word.Application")
objWord.Visible = False
Set objDoc = objWord.ActiveDocument
objWord.Application.DisplayAlerts = wdAlertsNone
objDoc.Application.ActivePrinter = "Adobe PDF on Ne06:"
objDoc.PrintOut Background:=False
objWord.Quit
Set objDoc = Nothing
Set objWord = Nothing
Application.ScreenUpdating = True
Exit Sub
End Sub 'Print it
打印输出打开一个对话框,询问路径和文件名
我想预先定义文件名和路径,以便打印输出安静运行。如果您有最新的Word版本,则可以直接将文件导出/保存到PDF文档。将代码更改为
Sub PrintIt()
Dim objWord As Word.Application
Dim objDoc As Word.Document
Dim Oshp As Object
Dim strCurrentPrinter As String
ActiveSheet.OLEObjects("SalaryPaycheck").Activate
Set objWord = GetObject(, "Word.Application")
objWord.Visible = False
Set objDoc = objWord.ActiveDocument
objWord.Application.DisplayAlerts = wdAlertsNone
' objDoc.Application.ActivePrinter = "Adobe PDF on Ne06:"
' objDoc.PrintOut Background:=False
Dim strOutFile As String
strOutFile = "<filename>.pdf"
objDoc.ExportAsFixedFormat OutputFileName:= _
strOutFile, ExportFormat:=wdExportFormatPDF, _
OpenAfterExport:=False, OptimizeFor:=wdExportOptimizeForPrint, Range:= _
wdExportAllDocument, From:=1, To:=1, Item:=wdExportDocumentContent
objWord.Quit
Set objDoc = Nothing
Set objWord = Nothing
Application.ScreenUpdating = True
Exit Sub
End Sub
为什么不另存为PDF文档而不是打印?因为打印输出过程有Append方法,我需要在一个PDF文件中追加多个文档。这是一个不同的问题。但您可以先将多个文档合并到一个word文件中,然后将其导出为PDF文件。