Workbook.SaveAs使用一些工作簿而不是其他工作簿崩溃Excel

时间:2014-01-08 18:37:12

标签: excel-vba vba excel

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

ActiveWorkbook.SaveAs sPass & "\" & sFile

某些工作簿保存正确,而其他工作簿导致Excel崩溃并显示消息

Microsoft Excel has stopped working

对于以编程方式保存时崩溃的工作簿,如果我在SaveAs之前退出程序并手动将它们保存在SaveAs将要使用的相同文件名下,则可以毫无问题地保存。

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

Workbooks(workbookName).SaveAs sPass & "\" & sFile

还尝试使用虚拟文件名:

Workbooks(workbookName).SaveAs "U:\someOtherDir\xyz.xlsm"

我还尝试使用SaveAs禁用{/ 1}}来围绕EnableEvents

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

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

1 个答案:

答案 0 :(得分:0)

另外要做一个正确的.SaveAs,请使用此功能。这指定了正确的FileFormat。这将确保以正确的文件格式保存文件,并避免在此之后手动打开文件时收到的错误消息。

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