Vba ';文件可能已损坏';打开从CSV保存为工作簿格式的文件时

Vba ';文件可能已损坏';打开从CSV保存为工作簿格式的文件时,vba,excel,Vba,Excel,有人可以帮我修复下面的代码,因为它正在保存,但我无法打开该文件,因为它说,该文件可能已损坏。也许我做错了什么。请注意,该文件以CSV格式接收,需要保存为常规excel文件 Sub SaveAsToFolderPath() Dim MyFileName As String Dim folderPath As String Dim dateFormat As String folderPath = "C:\Users\A\Desktop\M work\DFMS\"

有人可以帮我修复下面的代码,因为它正在保存,但我无法打开该文件,因为它说,该文件可能已损坏。也许我做错了什么。请注意,该文件以CSV格式接收,需要保存为常规excel文件

Sub SaveAsToFolderPath()

Dim MyFileName As String 
Dim folderPath As String 
Dim dateFormat As String

       folderPath = "C:\Users\A\Desktop\M work\DFMS\"
       dateFormat = Format(Now, "dd.mm.yyyy HH-mm-ss AMPM")
       MyFileName = Range("G2").Value

    If Not ActiveWorkbook.Saved Then
        ActiveWorkbook.SaveAs Filename:=folderPath & MyFileName & " - Next Delivery " & dateFormat & ".xlsm"
    End If

End Sub

在保存CSV文件时,您正在更改CSV文件的扩展名。稍后打开保存的.XLSX文件时,Excel需要XLSX格式,但会看到逗号分隔的值-因此,文件不是预期格式,它一定已损坏

当您
SaveAs
时指定文件格式:


SaveAs
可用的文件格式是
XlFileFormat
枚举的成员。

在保存CSV文件时,您正在更改CSV文件的扩展名。稍后打开保存的.XLSX文件时,Excel需要XLSX格式,但会看到逗号分隔的值-因此,文件不是预期格式,它一定已损坏

当您
SaveAs
时指定文件格式:


SaveAs
可用的文件格式是
XlFileFormat
enum的成员。

对不起,我想我把
.xlsm
与文件格式而不是扩展名混淆了。如果我指定了文件格式
xlWorkbookDefault
,是否仍需要将扩展名
.xlsm
?excel在保存文件时不会自动执行此操作吗?很抱歉,我认为我对
.xlsm
感到困惑,因为它是文件格式,而不是扩展名。如果我指定了文件格式
xlWorkbookDefault
,是否仍需要将扩展名
.xlsm
?excel在保存文件时是否会自动执行此操作?
Dim path As String
path = folderPath & MyFileName & " - Next Delivery " & dateFormat & ".xlsm"

ActiveWorkbook.SaveAs path, xlWorkbookDefault