从外部退出Excel宏(从GUI退出,而不是从宏退出)

时间:2010-10-21 14:12:14

标签: vb.net excel user-interface

我有一个与excel接口执行宏的程序(GUI)。我们使用Microsoft.Office.Interop.Excel来调用/运行宏,这很有效。

我无法弄清楚是从GUI取消宏的好方法。

我们的一个想法是使用运行宏的excel.application变量将“停止”值写入工作簿中的特定单元格,并在宏中(它们都是循环),检查“停止“该单元格中的值”。

这会使我的GUI崩溃

The program '[2188] BVLReports.vshost.exe: Managed' has exited with code -336589910 (0xebf00baa).

excel被束缚了,不会回应。如果“停止”值存在,我知道如何从宏内Exit Sub,所以我不需要如何从宏内部检查/取消的答案。有关更好地编写此“停止”值的方法或从外部取消宏的更好方法的想法吗?

由于

2 个答案:

答案 0 :(得分:1)

这可能是神秘的Excel Application.CheckAbort功能的一个案例?

Application.CheckAbort

根据帮助Application.Checkabort应该停止重新计算,除了指定的范围。它没有这样做。如果应用程序消息队列中有待处理的中止消息(鼠标单击,esc键向下等),它显然会引发运行时错误。该参数指定是否使用该消息或将其留在队列中。目标是允许以与Excel计算相同的方式中断长时间运行的VBA计算。

Application.CheckAbort([KeepAbort])

答案 1 :(得分:0)

也许您可以使用SendKeys函数将键盘输出发送到excel并以此方式将其杀死。

希望这有帮助。

享受!