xls到xlsx转换使用vba名称声明损坏文件

我正尝试使用以下代码将文件从abcd.xls重命名为xyz.xlsx

  NumOfAttachments = Range("RecCount").Value DestinationFolderPath = Range("destinationfolder").Value NewShtName = "Sheet1" If NumOfAttachments <> 0 Then For X = 0 To NumOfAttachments - 1 OrigName = Range("Startcell").Offset(X, 1).Value NewName = Range("startcell").Offset(X, 2).Value SourceFolderPath = Range("startcell").Offset(X, 3).Value NewFile = DestinationFolderPath & NewName If Dir(DestinationFolderPath & OrigName) <> "" Then Kill DestinationFolderPath & OrigName FileCopy SourceFolderPath & OrigName, DestinationFolderPath & OrigName If Dir(NewFile) <> "" Then Kill NewFile Name DestinationFolderPath & OrigName As NewFile 

之后,当我尝试打开文件( xyz.xlsx )时,出现以下错误 –

excel cannot open the file xyz.xlsx because the file format or file extension is not valid

原因很简单。 您没有使用正确的文件格式。

你的.SaveAs代码应该像这样

 .SaveAs "\myserver\test\xyz.xlsx", FileFormat:=51 

请参阅下表以了解文件格式

 50 = xlExcel12 (Excel Binary Workbook in 2007-2010 with or without macro's, xlsb) 51 = xlOpenXMLWorkbook (without macro's in 2007-2010, xlsx) 52 = xlOpenXMLWorkbookMacroEnabled (with or without macro's in 2007-2010, xlsm) 56 = xlExcel8 (97-2003 format in Excel 2007-2010, xls) 

会推荐这个链接