Excel Workbook.SaveAs与某些工作簿(而不是其他工作簿)一起崩溃

Excel Workbook.SaveAs与某些工作簿(而不是其他工作簿)一起崩溃,excel,vba,Excel,Vba,我有一个宏,可以对工作簿进行一些更改,然后将工作簿保存在不同文件名下的不同文件夹中。保存工作簿的代码为: ActiveWorkbook.SaveAs sPass & "\" & sFile 一些工作簿保存正确,而另一些则会导致Excel因消息而崩溃 Microsoft Excel has stopped working 对于以编程方式保存时崩溃的工作簿,如果我在SaveAs之前退出程序,并手动将它们保存在SaveAs将要使用的相同文件名下,则它们保存时不会出现问题 我尝试按索

我有一个宏,可以对工作簿进行一些更改,然后将工作簿保存在不同文件名下的不同文件夹中。保存工作簿的代码为:

ActiveWorkbook.SaveAs sPass & "\" & sFile
一些工作簿保存正确,而另一些则会导致Excel因消息而崩溃

Microsoft Excel has stopped working
对于以编程方式保存时崩溃的工作簿,如果我在
SaveAs
之前退出程序,并手动将它们保存在
SaveAs
将要使用的相同文件名下,则它们保存时不会出现问题

我尝试按索引引用工作簿,如下所示:

Workbooks(workbookName).SaveAs sPass & "\" & sFile
还尝试仅使用虚拟文件名:

Workbooks(workbookName).SaveAs "U:\someOtherDir\xyz.xlsm"
我还尝试使用
EnableEvents
禁用
SaveAs

Application.EnableEvents=False
ActiveWorkbook.SaveAs sPass & "\" & sFile
Application.EnableEvents=True

但一些工作簿仍然会发生崩溃。我还没有找到哪本工作簿会失败的模式。它们正确打开,即没有损坏。

另外,要执行正确的
。另存为
,请使用此选项。这将指定正确的
文件格式。这将确保文件以正确的文件格式保存,并避免在之后手动打开文件时出现错误消息

'
'~~~> Rest of the code
'
sFile = "U:\someOtherDir\xyz.xlsm"
Workbooks(workbookName).SaveAs sFile, 52
DoEvents
'
'~~~> Rest of the code
'

当你说“崩溃”时,到底发生了什么?当进程崩溃时,Excel会消失,出现任何错误消息或完全无声的故障?我会看到一个弹出窗口,说Microsoft Excel已停止工作
,然后单击该弹出窗口,Excel的所有实例都会关闭。对于行为不端的工作簿,您是否尝试过将数据移动到新工作簿,然后测试宏?有可能发生文件损坏吗?@alanwage,我试试。@alanwage将数据复制到新工作簿避免了崩溃。所以这可能是一个文件损坏问题。但奇怪的是,“损坏”文件成功打开,没有需要修复的消息;我仍然收到Microsoft Excel已停止工作的
消息导致崩溃。