问题描述
我有一个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