我正在使用excel vba项目创建一个word文件,然后使用以下代码将其保存为pdf。
wordapp.ActiveDocument.SaveAs2 "" & folder & "" & pdfname & ".pdf", 17
我想在路径
使用PDF打印机打印相同的word文件& folder &
和文件名为
&安培; pdfname&
我尝试将其用作word文件中的宏,但它要求输入路径和文件名。不会自动化它。
答案 0 :(得分:2)
最简单的方法可能是将pdfName
用作字符串,并在其前面放置一个\
符号和文件夹。
尝试从Excel文件运行此代码,只需确保Excel文件已成功保存,否则ThisWorkbook.Path
将为空字符串,并且将要求您在运行时保存文件 - > If ThisWorkbook.Path = vbNullString Then ThisWorkbook.Save
Public Sub TetMe()
Dim wordApp As Object
Dim WordDoc As Object
Dim folder As String
Dim pdfName As String: pdfName = "someName"
If ThisWorkbook.Path = vbNullString Then ThisWorkbook.Save
Set wordApp = CreateObject("Word.Application")
Set WordDoc = wordApp.documents.Add
folder = ThisWorkbook.Path & "\"
wordApp.ActiveDocument.SaveAs2 folder & pdfName & ".pdf", 17
End Sub
如果您想知道17
之后的.SaveAs2
是什么,wdSaveFormat Enumeration
为wdFormatPDF
。
答案 1 :(得分:1)
以下代码可用于为您的代码运行Foxit PDF打印机。
主要代码
ActivePrinter = "Foxit Reader PDF Printer"
printoutcommand = "wordapp.ActiveDocument.PrintOut
Range:=wdPrintAllDocument, PrintToFile:=True,OutputFilename:=" & sItem &
pdfname & "_temp" & ".pdf"
wordapp.Application.Run "FoxitPrint2PDF"
Application.Wait (Now + TimeValue("0:00:02"))
Name "C:\Users\shena\Documents\Document1.pdf" As pdfname & "_temp" & ".pdf"
Application.Wait (Now + TimeValue("0:00:02"))
FileCopy "C:\Users\shena\Documents\" & pdfname & "_temp" & ".pdf", sItem & "" & pdfname & "_temp" & ".pdf"
Application.Wait (Now + TimeValue("0:00:02"))
Kill "C:\Users\shena\Documents\" & pdfname & "_temp" & ".pdf"
Application.Wait (Now + TimeValue("0:00:02"))
wordapp.activedocument.Close SaveChanges:=wdDoNotSaveChanges
wordapp.Quit
Set wordapp = Nothing
FoxitPrint2PDF 是用于将Foxit PDF打印机设置为默认打印机的宏,然后重置它。代码如下
Dim sCurrentPrinter As String
On Cancel GoTo Cancelled:
sCurrentPrinter = ActivePrinter
ActivePrinter = "Foxit Reader PDF Printer"
Application.PrintOut FileName:=""
Cancelled:
ActivePrinter = sCurrentPrinter
它只是一个给出相同代码的想法可以写在正在进行打印操作的模块中。 在主代码中可以看到一些剪切粘贴操作。这是对它的解释。当我们选择PDF作为打印机时,我们选择了转换PDF的默认位置。从那个位置我们将它带到我们想要的位置。右键单击“Foxit Reader PDF Printer”可以看到这些选项,然后单击打印首选项。下面给出了相同的屏幕截图以供参考。
突出显示的选项对我们很重要。