" ThisWorkbook.Close"导致excel崩溃

时间:2016-11-10 09:29:54

标签: excel vba excel-vba xlsm

我有一大堆excel文件,它们几乎像一个程序一样工作,它们可以在多台计算机上运行(使用不同版本的Windows),最近我有 问题,当用户按下 我的关闭按钮 (实际上是与宏关联的图片)时,代码调用:

ThisWorkbook.Close savechanges:=True

它使4台支持的计算机中有2台处于EXCEL状态(Windows XP = OK,Windows 10 = OK 1 BAD OTHER,Windows 8 = BAD)。

enter image description here

我已将此事件与此特定代码行隔离(仅使用关闭按钮制作1张excel文件,但仍然崩溃) 我注意到如果excel文件不是唯一打开的文件,有时它不会崩溃(可能问题在于关闭excel本身)

我所做的是将这两个陈述分开,所以如果(当)它崩溃了它已经保存过:

ThisWorkbook.Save
ThisWorkbook.Close

有人可以点灯吗?我真的输了。我尝试了所有可以考虑的替代方案(activeworkbook ......)

Tl;博士: " ThisWorkbook.Close" 导致excel崩溃

2 个答案:

答案 0 :(得分:8)

这是Microsoft Excel中的标准错误。不确定Microsoft是否有任何修复。但是,有一些解决此问题的解决方法。

当从单击事件触发“关闭”事件但与“选择更改”等其他事件一起正常工作时,会出现此问题。要解决这个问题,您可以试试这个:

在按钮的点击事件中添加以下代码:

Private Sub CloseButton_Click()
    Cancel = True
    Application.OnTime Now, "Close_Xls"
End Sub

在标准模块中,添加以下代码

Sub Close_Xls()
   ThisWorkbook.Close  savechanges:=True
End Sub

它对我有用。如果有帮助请告诉我

答案 1 :(得分:0)

这发生在我身上,因为我的外部链接无法更新。为了解决这个问题,我去了Data-> Edit Links-> Break Link。一旦断开所有这些链接,ActiveWorkbook.Close savechanges:= True正常工作。