繁体   English   中英

另存为.xls FileFormat:= 53时,我的Excel VBA-中突然出现错误

[英]Suddenly Getting an Error in my Excel VBA- when Saving as .xls FileFormat:=53

这段代码已经使用了几个月,今天却抛出了错误:

对象'_Workbook'的运行时错误'1004'方法'SaveAs'失败

导致错误的代码行是:

        '~~>. Save the file
        .SaveAs Filename:="\\MY\File\Path\Report_" & Format(Now(), "yyyymmdd") & ".xls", FileFormat:=53

我不知道这里突然发生了什么变化,有什么想法吗?

我正在运行MS Excel 2016版本1609

该位置没有同名文件。

我想另存为.xls,以防万一我们将其发送到旧版本的Excel,我可以将其更改为.xlsx并重新编写一些代码,但我很好奇为什么突然出现此错误?

感谢您的光临。

我认为要另存为“ .xls”,FileFormat应该为56 http://www.rondebruin.nl/win/s5/win001.htm

您可以做的是为此使用宏记录器。 这是我的产物:

ChDir "C:\Users\gropc\Desktop"
ActiveWorkbook.SaveAs Filename:="C:\Users\uname\Desktop\Book1.xlsx", _
    FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

该格式应予以考虑。

如果是隐藏文件问题,则可以利用FileSystemObject对象并循环,直到找到“免费”文件名

因此您的代码行可能变为以下内容:

.SaveAs fileName:=GetFreeFileName("\\MY\File\Path\Report_" & 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM