2015-05-06 39 views
2

我正在運行一個宏來生成報告。一切工作正常。宏完成沒有任何錯誤消息。當我想打開生成的報告時,會出現(t)錯誤信息:將結果保存爲'損壞的文件或無效的擴展名'

「由於文件格式或文件擴展名無效,Excel無法打開'abc.xlsx'文件。」

當我保存爲.XLSM它的工作,但我不希望宏在最終報告中提供(防止運行它的人,並避免數據損壞)。

這是我使用的代碼:

ActiveWorkbook.SaveAs Filename:=path & reportname & ".xlsx", 
    fileFormat:=xlNormal 

任何想法更然後歡迎!

+2

安全作爲'.xls'或使用正確的格式('FileFormat:= xlOpenXMLWorkbookMacroEnabled')。 'FileFormat:= xlNormal'對於Excel 2007 ++ – eckes

+0

@eckes無效,請將其作爲答案而不是評論。雖然,Chris,因爲您不需要宏,所以您需要使用FileFormat:= xlOpenXMLWorkbook。 – FreeMan

回答

2

既然你表明你做希望最終的工作簿是宏觀啓用,這是你想要什麼:

ActiveWorkbook.SaveAs Filename:=path & reportname & ".xlsx", FileFormat:=xlOpenXMLWorkbook 
0

FileFormat:=xlNormal已不再被Excel 2007及更高版本認可。它以傳統格式保存文件,因此您必須將其命名爲.xls

根據在線幫助,新格式被稱爲FileFormat:=xlOpenXMLWorkbookMacroEnabled)。

0

嘗試這個

Sub Macro1() 
Dim Path As String 
Dim ReportName As String 

Path = "C:\Users\Desktop\" 
ReportName = "abc.xlsx" 
    Application.DisplayAlerts = False 
    ActiveWorkbook.SaveAs Filename:= _ 
    Path & ReportName, FileFormat:= _ 
    xlOpenXMLWorkbook, CreateBackup:=False 
    Application.DisplayAlerts = True 
End Sub 
+0

如果路徑中已存在相同的名稱,則它將被覆蓋,不會顯示警報,也不會保存宏 – 0m3r