【问题标题】:Save results as in 'corrupted file or invalid extension'将结果另存为“文件损坏或扩展名无效”
【发布时间】:2015-05-06 20:22:32
【问题描述】:

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

“Excel 无法打开文件‘abc.xlsx’,因为文件格式或文件扩展名无效。”

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

这是我正在使用的代码:

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

欢迎任何想法!

【问题讨论】:

  • 将其保存为 .xls 或使用正确的格式 (FileFormat:=xlOpenXMLWorkbookMacroEnabled)。 FileFormat:=xlNormal 对 Excel 2007++ 无效
  • @eckes,让这个答案不仅仅是评论。虽然,克里斯,你会想要使用FileFormat:=xlOpenXMLWorkbook,因为你不想要宏。

标签: vba excel


【解决方案1】:

既然您表示您确实希望最终工作簿启用宏,这就是您想要的:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      试试这个

      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
      

      【讨论】:

      • 如果路径中已经存在同名,则覆盖,不会显示警报,也不会保存宏
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 2013-06-03
      • 1970-01-01
      • 2019-07-05
      相关资源
      最近更新 更多