将Excel导出为PDF时出现1004错误

时间:2015-04-07 13:58:48

标签: excel vba function command

我目前正在尝试使用一个按钮将excel文档另存为.xls和PDF。它工作了一点,但现在它给了我一个错误信息,并突出显示与ActiveSheet.ExportAsFixedFormat开头的行。如果我将其取出,则会突出显示MsgBox行以显示问题。我想知道这是否是由于这个函数中有3个命令引起的?

Sub Rectangle1_Click()
Dim Path As String
Dim FileName1 As String
Dim FileName2 As String
Path1 = "FILE_PATH_IS_HERE"
Path2 = "FILE_PATH_IS_HERE"
FileName1 = Range("J7")
FileName2 = Range("G3")
ActiveWorkbook.SaveAs Filename:=Path1 & FileName1 & FileName2 & ".xls", FileFormat:=xlNormal

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Path2 & FileName1 & FileName2, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

MsgBox "Invoice Saved As Excel Doc and PDF.", , "I Systems"

提前感谢您的所有帮助!

3 个答案:

答案 0 :(得分:0)

'Don't work
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=".\FOLDER\fileName.pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

因为路径与。\

相对

Application.ActiveWorkbook.Path

您必须拥有绝对路径,如下所示
'work
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Application.ActiveWorkbook.Path+"\FOLDER\fileName.pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

答案 1 :(得分:0)

我有一个类似的问题,上面的答案对我不起作用。经过一个小时的拔毛,这是我的问题的根源。

我正在传递一个单元格值作为生成文件名的一部分。我这样做的格式为fileName:= ActiveWorkbook.Path& “\”& CStr(Workbooks.Cells(i,j).Value)& “.PDF”。单元格本身中的文本被格式化为两行(即“顶行文本”+(Alt + K)+“底行文本”)。虽然字符串在Debug.print,MsgBox或值预览中看起来很正常,但我认为有一个隐藏字符可以编码单元格的新行。我相信这个隐藏的字符会在作为fileName参数的一部分传递时导致错误。我猜Excel没有拿起它,但操作系统的文件名系统确实如此。

无论如何,这为我解决了这个问题。祝你好运,这是一个令人沮丧的想法!

答案 2 :(得分:0)

检查您的日期设置,遇到类似的问题,我的日期设置为dd / mm / yyyy,更改为dd mm yyyy,不带“ /”,并且可以使用。我将日期用作文件名的一部分。