通过VBA另存为PDF会损坏文件

时间:2019-07-23 06:42:07

标签: excel vba pdf

我很难确定这个问题。我有一个宏,可以在一个工作簿中选择多个工作表并将其另存为PDF。该文件已正确放置到文件夹中,并且有时甚至可以正确打开。但是,大多数情况下,PDF已损坏,并给我以下错误。

enter image description here

在工作时,我无法复制实例。 “ MSPG图表”工作表是一个图表工作表,即我将图表移到了自己的名为“ MSPG图表”的工作表中。如果我手动保存文件,则可以正常工作。

以下是我使用的代码: NewPathAssembly是我的保存路径,可以正常使用。

Sub Create_PDF_StandAlone()

Dim NewPathAssembly as String, Name as String
Dim PDFName as Variant

On Error GoTo ErrLine

NewPathAssembly = "C:\"
Name = "B2110 - xx_30 - MS Peergroup"
PDFName = InputBox("Enter PDF name here.", "PDF title", Name)

   Sheets(Array("Overview", "MSPG Chart")).Select

    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
    IgnorePrintAreas:=False, PrToFilename:= _
    NewPathAssembly & PDFName & ".pdf"

Sheets(1).Select


Exit Sub

ErrLine: MsgBox "Please close the current PDF file"

End Sub

1 个答案:

答案 0 :(得分:0)

添加参数ActivePrinter:="Microsoft Print To PDF"  工作了。看来,由于它默认使用了另一台打印机,因此以某种方式损坏了该文件。