5

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

ThisWorkbook.Close savechanges:=True

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

在此处输入图像描述

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

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

ThisWorkbook.Save
ThisWorkbook.Close

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

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

4

2 回答 2

8

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

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

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

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

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

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

这个对我有用。让我知道它是否有帮助

于 2016-11-10T10:10:02.227 回答
0

这发生在我身上,因为我有不会更新的外部链接。为了解决这个问题,我去了数据 -> 编辑链接 -> 断开链接。一旦我破坏了所有这些链接, ActiveWorkbook.Close savechanges:=True 就可以正常工作。

于 2020-11-18T18:54:00.583 回答