将Excel工作表导出为PDF运行时错误' 5':无效的过程调用或参数

时间:2016-02-16 11:33:22

标签: vba excel-vba pdf excel

我在将工作簿中的一个Excel工作表导出为PDF文件时遇到问题。

Sub ExportPDF()
    Dim Nazwa As String
    ' Creating a destination folder for PDF file
    If Len(Dir("c:\Faktury", vbDirectory)) = 0 Then
        MkDir "c:\Faktury"
    End If
    'InputBox that allows user to type filename
    Nazwa = InputBox("Wpisz nazwę pliku", "Nazwa pliku", Sheets("Fa VAT").Range("G3"))
    If Nazwa = "" Then Exit Sub
    ChDir "c:\Faktury"
    'Exporting sheet "Fa VAT" to PDF
    Sheets("Fa VAT").ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:=Nazwa, _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=True
End Sub

我收到错误"运行时错误' 5':无效的过程调用或参数"。之后,Excel突出显示代码的最后部分,因为它应该是错误的。我的意思是这一部分:

    Sheets("Fa VAT").ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:=Nazwa, _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=True

我安装了Microsoft SaveAsPDF设置,没有任何更改。我将文件名更改为一些随机字符串,而不是引用InputBox。我尝试激活正确的工作表,然后导出ActiveSheet。我试着隐藏并显示了这张纸。我试图在另外两台计算机上运行该文件。

当我将此宏复制到一些全新的空白Excel电子表格时,它可以正常工作。

我在Excel 2007,Windows 10上工作。我也在Excel 2010和Windows 7上尝试过它。

以下是我尝试过的一些链接:

Runtime Error : 5, Invalid Procedure call or argument

http://www.mrexcel.com/forum/excel-questions/595252-visual-basic-applications-trouble-save-pdf-code.html

2 个答案:

答案 0 :(得分:1)

确保工作表不被隐藏。如果工作表被隐藏或非常隐藏,Excel将为.ExportasFixedFormat抛出错误。如果你的隐藏了,你可以先在你的代码中取消隐藏它:

表格(" Fa VAT")。可见= xlSheetVisible

最后,你可以再次隐藏它。

表格(" Fa VAT")。Visible = xlSheetHidden

答案 1 :(得分:1)

我有同样的错误。就我而言,文件路径和名称太长。缩短名称或路径,它应该可以工作。