将结果另存为“已损坏的文件或无效的扩展程序”。

时间:2015-05-06 20:22:33

标签: excel vba excel-vba

我正在运行一个宏来生成报告。一切都很好。宏完成没有任何错误消息。当我想打开生成的报告时,它会出现(t)错误消息:

  

" Excel无法打开文件' abc.xlsx'因为文件格式或文件扩展名无效。"

当我保存为 .xlsM 时,它确实有效,但我不希望宏在最终报告中可用(以防止人们在运行它并避免数据损坏。

这是我正在使用的代码:

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

欢迎任何想法!

3 个答案:

答案 0 :(得分:3)

由于您表明希望最终工作簿能够启用宏,所以这就是您想要的:

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

答案 1 :(得分:0)

Excel 2007及更新版本不再识别FileFormat:=xlNormal。因此它以传统格式保存文件,因此您必须将其命名为.xls

根据在线帮助,新格式称为FileFormat:=xlOpenXMLWorkbookMacroEnabled)。

答案 2 :(得分: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