2015-04-07 178 views
0

我目前正嘗試使用一個按鈕將Excel文檔另存爲.xls和PDF。它工作了一下,但現在它給了我一個錯誤消息,並突出顯示ActiveSheet.ExportAsFixedFormat開始的行。如果我把它拿出來,然後突出顯示MsgBox行顯示一個問題。我想知道這是否是由這個函數中有3個命令引起的?將Excel導出爲PDF時出現1004錯誤

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" 

感謝您提前提供的所有幫助!

+0

它會告訴你什麼錯誤? –

+0

運行時錯誤'1004':應用程序定義或對象定義的錯誤。謝謝! – tbowden

+0

表單是否受到保護?發生錯誤時,「FileName1」和「FileName2」的值是什麼? –

回答

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 
0

我有一個類似的問題,您必須是絕對路徑和上面的答案對我不起作用。一小時後,我的頭髮拉出,這是我的問題的來源。

我傳遞一個單元格值作爲生成文件名的一部分。我這樣做的格式爲fileName:= ActiveWorkbook.Path &「\」& CStr(Workbooks.Cells(i,j).Value)&「.pdf」。單元格本身的文本被格式化爲兩行(即「頂行文本」+(Alt + K)+「底行文本」)。雖然在Debug.print,MsgBox或值預覽中該字符串看起來很正常,但我認爲有一個隱藏字符可以編碼單元格的新行。我相信這個隱藏的字符在作爲fileName參數的一部分傳遞時會導致錯誤。我猜Excel沒有選擇它,但操作系統的文件名系統。

無論如何,這解決了我的問題。祝你好運,這是一個令人沮喪的解決辦法!

+1

)請不要在多個問題上發佈相同的答案,發佈一個好答案,然後投票/標記以關閉其他問題作爲重複。如果問題不重複,*定製您的問題答案。 –