我在将工作簿中的一个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上尝试过它。
以下是我尝试过的一些链接:
答案 0 :(得分:1)
确保工作表不被隐藏。如果工作表被隐藏或非常隐藏,Excel将为.ExportasFixedFormat抛出错误。如果你的隐藏了,你可以先在你的代码中取消隐藏它:
表格(" Fa VAT")。可见= xlSheetVisible
最后,你可以再次隐藏它。
表格(" Fa VAT")。Visible = xlSheetHidden
答案 1 :(得分:1)
我有同样的错误。就我而言,文件路径和名称太长。缩短名称或路径,它应该可以工作。