使用下列代码运行vba的xls转换为xlsx格式,并另存的时候出错。这个程序一直运行了很长一段时间都没有问题,但是最近遇到一个xls工作簿,ActiveWorkbook.SaveAs另存时工作簿显示“保存失败”,无其他报错。原xls工作簿可以正常打开、无保护、可编辑,不知道什么原因。请教各位大s,是代码不完整吗?
Dim iFile(1 To 10000000) As String
Dim count As Integer
Sub xls2xlsx()
iPath = ThisWorkbook.Path
On Error Resume Next
count = 0
zdir iPath
For i = 1 To count
If iFile(i) Like "*.xls" And iFile(i) <> ThisWorkbook.FullName Then
MyFile = iFile(i)
FilePath = Replace(MyFile, ".xls", "转换格式后.xlsx")
If Dir(FilePath, 16) = Empty Then
Set WBookOther = Workbooks.Open(MyFile)
Application.ScreenUpdating = False
ActiveWorkbook.SaveAs Filename:=FilePath, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False **'这一步显示保存失败**
Kill MyFile
WBookOther.Close SaveChanges:=False
Application.ScreenUpdating = True
End If
End If
Next
End Sub
Sub zdir(p)
Set fs = CreateObject("scripting.filesystemobject")
For Each F In fs.GetFolder(p).Files
If F <> ThisWorkbook.FullName Then count = count + 1: iFile(count) = F
Next
For Each m In fs.GetFolder(p).SubFolders
zdir m
Next
End Sub
你别用代码,直接在文件里点另存为呢,能保存吗
可能的原因有:
文件夹里已经有一个同名文件;
硬盘空间满了;
文件根本不是个excel文件,而是个csv文件,被人改了扩展名