我有一个与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
,所以我不需要如何从宏内部检查/取消的答案。有关更好地编写此“停止”值的方法或从外部取消宏的更好方法的想法吗?
由于
答案 0 :(得分:1)
这可能是神秘的Excel Application.CheckAbort功能的一个案例?
Application.CheckAbort
根据帮助Application.Checkabort应该停止重新计算,除了指定的范围。它没有这样做。如果应用程序消息队列中有待处理的中止消息(鼠标单击,esc键向下等),它显然会引发运行时错误。该参数指定是否使用该消息或将其留在队列中。目标是允许以与Excel计算相同的方式中断长时间运行的VBA计算。
Application.CheckAbort([KeepAbort])
答案 1 :(得分:0)