这段代码已经工作了几个月了,今天它抛出了错误:
运行时错误'1004'对象'_Workbook'的方法' savea '失败
导致错误的代码行是: '~~>. Save the file
.SaveAs Filename:="\MYFilePathReport_" & Format(Now(), "yyyymmdd") & ".xls", FileFormat:=53
我不知道是什么改变了这里突然不工作,有什么想法吗?
我正在运行MS Excel 2016, Version 1609
该位置没有同名文件
我想保存为。xls,以防我们发送给的人有旧版本的Excel,我可以将其更改为。xlsx并重写代码,但我很好奇为什么突然出现了这个错误?
我想保存为".xls", FileFormat应该是56http://www.rondebruin.nl/win/s5/win001.htm
您可以做的是使用宏记录器。下面是我的输出:
ChDir "C:UsersgropcDesktop"
ActiveWorkbook.SaveAs Filename:="C:UsersunameDesktopBook1.xlsx", _
FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
如果这是一个隐藏的文件问题,你可以利用FileSystemObject
对象和循环,直到你找到一个"自由"的文件名
所以你的代码行可以变成如下:
.SaveAs fileName:=GetFreeFileName("\MYFilePathReport_" & Format(Now(), "yyyymmdd"), ".xls")
使用以下函数:
Function GetFreeFileName(fileName As String, fileExt As String)
Dim iFile As Long
With CreateObject("FileSystemObject")
Do While .FileExists(fileName & fileExt)
iFile = iFile + 1
fileName = fileName & "-" & iFile
Loop
End With
End Function