Excel VBA宏打印到PDF - 不支持输出文件?

时间:2015-07-02 21:31:54

标签: excel vba excel-vba pdf

我有一个简单的宏选择工作表,输入基本数据然后打印到PDF文件。宏工作并创建文件,但是,当尝试打开生成的文件时,Adobe Acrobat出现错误,说“Acrobat无法打开文档”。因为它不是受支持的文件类型,或者因为文件已损坏。

enter image description here

这是我的代码(名称和文字改为保护无辜者)

Sheets("Sheet1").Select
ActivePrinter = "CutePDF Writer on CPW2:": _
Range("Ab2").Select
ActiveCell.FormulaR1C1 = "text 001"
Range("Ab3").Select
ActiveCell.FormulaR1C1 = "text 002"
Range("Ab4").Select
ActiveCell.FormulaR1C1 = "text 003"
ActiveWindow.SelectedSheets.PrintOut _
    printtofile:=True, Collate:=True, prtofilename:="filename.pdf"

如果我注释掉ActivePrinter行并将filename更改为.ps文件,它将创建一个在Acrobat中正常打开的postscript文件。我知道我可以将.ps文件转换为.PDF,但我试图避免这种情况,因为宏运行150多个变体创建了150多个文件。

有没有人有类似的经历,如果有的话,你做了什么来克服它们?

非常感谢任何协助。

1 个答案:

答案 0 :(得分:2)

这是将文件保存为PDF的代码(来自宏录制器):

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    "C:\Temp\Sample.pdf", Quality:= xlQualityStandard, _
    IncludeDocProperties:=True, IgnorePrintAreas:=False, _
    OpenAfterPublish:=False