"ThisWorkbook.Close" 导致 excel 崩溃

"ThisWorkbook.Close" Causes excel to crash

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

ThisWorkbook.Close savechanges:=True

它导致 4 台支持的计算机中的 2 台崩溃 EXCEL(Windows XP = OK,Windows 10 = OK 1 BAD OTHER,Windows 8 = BAD ).

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

我所做的是将 2 个语句分开,所以如果(当)它崩溃时它已经保存了:

ThisWorkbook.Save
ThisWorkbook.Close

任何人都可以阐明一下吗?我真的迷路了。我尝试了所有我能想到的替代方案 (activeworkbook...)

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

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

当 "Close" 事件由点击事件触发但与 "Selection Change" 等其他事件一起正常工作时,就会出现此问题。要解决这个问题,您可以试试这个:

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

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

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

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

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

这件事发生在我身上,因为我有无法更新的外部链接。为了解决这个问题,我转到数据 -> 编辑 Links -> 中断 Link。一旦我破坏了所有这些链接,ActiveWorkbook.Close savechanges:=True 工作正常。