VBA将Excel导出为PDF

时间:2018-11-12 22:20:42

标签: excel vba excel-vba pdf

运行此宏时出现“ 1004”错误。

Sub macro_PDF()

ActiveSheet.ExportAsFixedFormat _
     Type:=xlTypePDF, _
     FileName:="/Users/username/Desktop/tests/filename.pdf", _
     OpenAfterPublish:=False
End Sub

错误图片

enter image description here

如果文件名为“ PDF.pdf”,则相同的代码也可以正常工作。看来我只能导出名称为“ PDF.pdf”的PDF。

以下代码不返回错误。为什么会这样?

Sub macro_PDF()

ActiveSheet.ExportAsFixedFormat _
     Type:=xlTypePDF, _
     FileName:="/Users/username/Desktop/tests/pdf.pdf", _
     OpenAfterPublish:=False
End Sub

1 个答案:

答案 0 :(得分:0)

我已经在我的PC上运行/调试过几次,当然,文件名没有任何区别。 Filename.pdf导出就可以了。该错误似乎有两个潜在原因。 (1)是未找到文件路径本身,另一(2)是文件已存在。因此,首先检查如下:

Sub macro_PDF()
Filename = "c:/fmob/filename.pdf"
If Dir(Filename) <> vbNullString Then
    Kill Filename
End If
ActiveSheet.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:=Filename, _
    OpenAfterPublish:=False
End Sub

我遇到了一种情况,即使删除了长手(即使用资源管理器),宏也无法写入文件,这似乎是由于PDF Acrobat的某种错误导致无法正确关闭所有文件句柄而导致的。大概重启可以​​解决这个问题。