|
本帖最后由 htl36907697 于 2023-3-10 14:27 编辑
问题描述
我有一个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
原文链接:https://www.daicuo.cc/biji/2638621
wb.SaveAs Left(pstr, Len(pstr) - 1) & "x", 52,其中的52,改为51后,我这就能成功了。
思路:
先用SaveCopyAs把原件方便快速的备份(saveAs在备份时原文件被关闭不能编辑),这时备份好的文件格式是xlsm。然后再用saveAs更改文件格式。用2个步骤和方法,完成快速备份和修改文件格式问题。
|
|