如何将xlsm保存为xlsx?

人气:418 发布:2022-10-16 标签: excel vba xlsx

问题描述

我有一个xslm文件。我想将文件另存为xlsx并发送电子邮件。

我可以将其另存为XLS文件。如果我尝试将其另存为xlsx,它确实会被保存,但当我打开它时,它给出一个错误。

ActiveWorkbook.SaveCopyAs Filename:=ActiveWorkbook.Path & "MyFileName - " & Format(Date, "mm-dd-yyyy") & ".xlsx"
Excel无法打开文件‘...pathMyFileName.xlsx’,因为该文件格式或文件扩展名无效。验证文件是否已损坏以及文件扩展名是否与文件格式匹配

推荐答案

SaveCopyAs不更改文件类型。

您无法通过SaveCopyAs将.xlsm保存为.xlsx。

编辑

解决办法是保存一份副本,然后更改其类型,同时删除旧副本,如下所示:

Dim wb As Workbook, pstr As String

pstr = ActiveWorkbook.Path & "MyFileName - " & Format(Date, "mm-dd-yyyy") & ".xlsm"
ActiveWorkbook.SaveCopyAs Filename:=y

Set wb = Workbooks.Open(pstr)
wb.SaveAs Left(pstr, Len(pstr) - 1) & "x", 52
wb.Close False

Kill pstr

1,005