"ThisWorkbook.Close"导致excel崩溃

Die*_*tro 5 excel vba excel-vba xlsm

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

ThisWorkbook.Close savechanges:=True
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述

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

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

ThisWorkbook.Save
ThisWorkbook.Close
Run Code Online (Sandbox Code Playgroud)

有人可以点灯吗?我真的迷路了.我尝试了所有可以想到的替代方案(activeworkbook ......)

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

小智 8

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

从单击事件触发"关闭"事件但与"选择更改"等其他事件一起正常工作时会发生此问题.要解决此问题,您可以尝试以下方法:

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

Private Sub CloseButton_Click()
    Cancel = True
    Application.OnTime Now, "Close_Xls"
End Sub
Run Code Online (Sandbox Code Playgroud)

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

Sub Close_Xls()
   ThisWorkbook.Close  savechanges:=True
End Sub
Run Code Online (Sandbox Code Playgroud)

这个对我有用.如果它有用,请告诉我