从vba/jscript关闭Excel Workbook,而不会崩溃Excel



在VBA中,我在JScript语言中具有一个全局脚本控制变量(JavaScript ES3(。我将var" thisworkbook"设置为

var ThisWorkbook = GetObject('', 'Excel.Application').Workbooks('" + ThisWorkbook.Name + "')

然后我可以通过说

来关闭工作簿
ThisWorkbook.Close(false)

完整的VBA代码用于完成:

Sub Test
Dim ScriptC as Object
Set ScriptC = CreateObject("ScriptControl"): ScriptC.Language = "JScript"
ScriptC.Eval "var ThisWorkbook = GetObject('', 'Excel.Application').Workbooks('" + ThisWorkbook.Name + "')"
ScriptC.Eval "ThisWorkbook.Close(false)"
End Sub

但是,这使我的Excel和所有开放式工作簿崩溃(Excel 2016( - 避免这种情况的好方法是什么?i 可以从jscript/javaScript中执行此操作,但是例如,可以通过WScript变量(只要从JScript中调用(来执行此操作。原因是它是由在JScript中而不是在VBA中评估的事件触发的(在这种情况下,VBA只是包装器(。

我已经尝试过" thisworkbook.application.quit'(根据https://learn.microsoft.com/en-us/office/vba/api/excel.application.quit(

谢谢!

此错误仅在从直接窗口运行命令时发生 - 如果从子例程内运行,则不会崩溃。

我在意识到这一点之前已经在一堆次中进行了测试。非问题,道歉。

最新更新