1004将Excel导出为PDF时出错

1004将Excel导出为PDF时出错,excel,vba,function,command,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

我目前正试图用一个按钮将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"
提前感谢您的帮助

'Don't work
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=".\FOLDER\fileName.pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
因为路径是相对的\

对于Application.ActiveWorkbook.path,必须具有如下所示的绝对路径


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

我正在传递一个单元格值作为生成文件名的一部分。我是以fileName:=ActiveWorkbook.Path&\&CStrWorkbooks.Cellsi,j.Value&.pdf的格式执行此操作的。单元格中的文本本身被格式化为两行,即顶行文本+Alt+K+底行文本。虽然字符串在Debug.print、MsgBox或值预览中看起来正常,但我认为有一个隐藏字符对单元格的新行进行编码。我相信这个隐藏字符在作为fileName参数的一部分传递时会导致错误。我猜Excel不会接受,但操作系统的文件名系统会接受


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

检查您的日期设置,遇到类似问题,我的日期设置为dd/mm/yyyy,更改为dd-mm-yyyy,没有/并且可以正常工作。我使用日期作为文件名的一部分。

它显示了什么错误?运行时错误“1004”:应用程序定义的错误或对象定义的错误。谢谢床单有保护吗?发生错误时,FileName1和FileName2的值是什么?FileName2是一个数字,例如101,它根据发票号而变化,FileName2是一个单词。我认为该文件没有受到保护,如何检查?谢谢你的帮助!Hmmmm是否可能没有工作表处于活动状态?您可以尝试用工作表替换活动表,无论工作表名称如何。请不要对多个问题给出相同的答案。发布一个好的答案,然后投票/标记以重复结束其他问题。如果问题不是重复的,请根据问题定制您的答案。
'work
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Application.ActiveWorkbook.Path+"\FOLDER\fileName.pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False