将结果保存为“损坏的文件或无效的扩展名”

我正在运行一个macros来生成一个报告。 一切工作正常。 macros完成没有任何错误消息。 当我想打开生成的报告时,会出现(t)错误信息:

“由于文件格式或文件扩展名无效,Excel无法打开”abc.xlsx“文件。”

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

这是我正在使用的代码:

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

任何想法都更受欢迎!

既然你表示你希望最终的工作簿被激活,这就是你想要的:

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

FileFormat:=xlNormal不再被Excel 2007及更高版本识别。 它以传统的格式保存文件,所以你必须命名它.xls

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

尝试这个

 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