尝试在映射服务器上将 XLSM 保存为 CSV 时出现“对象 _workbook 的方法保存失败”错误

Posted

技术标签:

【中文标题】尝试在映射服务器上将 XLSM 保存为 CSV 时出现“对象 _workbook 的方法保存失败”错误【英文标题】:“method saveas of object _workbook failed” error while trying to save an XLSM as CSV on a mapped server 【发布时间】:2017-12-01 21:33:07 【问题描述】:

您好,我正在尝试将 xlsm 文件另存为 CSV,并保存在我映射到我计算机上的服务器上。 下面是代码:

CurrentWorkbook = ThisWorkbook.FullName
CurrentFormat = ThisWorkbook.FileFormat
' Store current details for the workbook
SaveToDirectory = "Y:\"
    ActiveWorkbook.SaveAs Filename:=SaveToDirectory & "Project_Type_Test" & ".csv", FileFormat:=xlCSV
    ActiveWorkbook.Close savechanges:=False
    ThisWorkbook.Activate

VBA 表明 bug 来自这行代码:

ActiveWorkbook.SaveAs Filename:=SaveToDirectory & "Project_Type_Test" & ".csv", FileFormat:=xlCSV

我尝试通过 ThisWorkbook 切换 ActiveWorkbook,但没有任何改变。

提前感谢您的帮助!

【问题讨论】:

你试过添加一个ErrorHandler吗?另外,错误信息在哪里? 尝试先将第一张工作表复制到新工作簿,然后将该工作簿另存为 csv。 这里运行良好。 ErrorHandler 并验证文件路径是否正确?此外,它有助于告诉我们错误消息是什么 @Alex 我刚刚注意到他在标题中发布了错误消息...“Object_Workbook 的方法 SaveAs 失败 @Maldred 对,谢谢,我错过了。 OP 可以尝试先将文件另存为 .xlsm 到您的 C:\temp\ 中,如果可行,则从那里开始工作。 【参考方案1】:

我运行了代码,如果我将它设置到我的硬盘上,它对我来说很好。

Sub tst()Possibly try using the url instead of the mapped dive letter

CurrentWorkbook = ThisWorkbook.FullName
CurrentFormat = ThisWorkbook.FileFormat
' Store current details for the workbook
SaveToDirectory = "C:\TEMP\" 'CHANGED THIS TO BE MY HD AND WORKS FINE
ActiveWorkbook.SaveAs Filename:=SaveToDirectory & "Project_Type_Test" & ".csv", FileFormat:=xlCSV
ActiveWorkbook.Close savechanges:=False
ThisWorkbook.Activate
End Sub

可能尝试使用资源的 url 而不是映射的驱动器号

"\\机器\路径\" 而不是“Y:\”

【讨论】:

当我尝试将它保存在我的硬盘上时,它也适用于我。但是,我需要使用的 url 是云 url。我意识到我能够到达这个特定的路径,因为它询问我是否要覆盖具有相同名称的现有文件。因此,问题实际上来自这行代码: ActiveWorkbook.SaveAs Filename:=SaveToDirectory & "Project_Type_Test" & ".csv", FileFormat:=xlCSV 错误如下: Method'SaveAs' of object '_Workbook '失败

以上是关于尝试在映射服务器上将 XLSM 保存为 CSV 时出现“对象 _workbook 的方法保存失败”错误的主要内容,如果未能解决你的问题,请参考以下文章

在“新”文件->另存为用户界面上将默认设置为 xlsm,用于特定模板

保存时将 .xlsm 的副本创建为 .xlsx

在 iOS 上将数据导出到 XLS(不是通过 CSV)

从 xlsm 复制并粘贴到 csv

将工作表导出为 CSV 会覆盖原始文件名 VBA

在 java 上将 csv 文件加载到 GreenPlum 失败