将结果保存为“损坏的文件或无效的扩展名”
我正在运行一个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:=xlOpenXMLWorkbook
( MacroEnabled
)。
尝试这个
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