在运行宏的任意时刻关闭并重新启动 Excel ?

在运行宏的任意时刻关闭并重新启动 Excel ?

example_code假设excel 2016 文件中有一个宏:example_excel.xlsm它包含大量代码但不会创建外部文件(所有计算都在example_excel.xlsm.

我很好奇是否有办法:

  1. 在任意时刻中断/暂停正在运行的代码。
  2. 在代码中手动添加下一行:运行/调用函数/子函数:
  3. 保存完整example_excel.xlsm状态(包括激活和选中的工作表和单元格,以及变量/代码运行环境),
  4. 在代码中的任意位置关闭它,然后
  5. 重新打开 excel
  6. example_code从上次中断的地方继续运行代码,
  7. 删除保存excel状态的插入行后,
  8. 立即
  9. 或者单击 1 个按钮/运行 1 个宏后?

由于我有一个复杂的代码,该代码在运行“求解器”的多个编程设置时以及在对求解器的特定状态进行故障排除时以 2 小时为单位运行,所以我要等待一个小时才能发生/触发该状态。

现在,简单的解决方法是查找该状态下存在的所有参数、工作表和单元状态,将它们存储在单独的工作表中,然后重新初始化它们。但如果需要评估另一个状态,这既不能灵活地排除故障,也不能方便地使用内部有无限循环的 .ie 对象,例如父级有一个子级,而子级又有一个项是子级的父级(我认为这是存在的,但我不确定)。

困难的答案是:重写/重构代码,使其变得不那么复杂,更有见地。我肯定需要这样做,尽管如此,即使这样做了,至少对我来说,一个在运行时保存状态的通用工具是可取的。

迄今为止的尝试:[在编辑中将详细说明。] 我的主要出发点困难是,如果参数列表未知,我不知道如何运行所有参数/变量。

到目前为止,由于原始问题由 2 小时的多次运行组成,我编写了一个代码,可以自动将所有工作表以及所有模块和表单从当前 excel 复制到另一个 excel。这样可以保存除代码中的变量以及工作表和单元格激活之外的所有内容。

由于该代码并不适用于运行代码期间的任意时间,也不复制 excel 使用的变量,因此我认为该代码与主题无关,除非另有要求。

我觉得我正在寻找一种非常狭窄的解决方法,因此欢迎提出寻找不同/更广泛的选项来解决问题的建议!

相关内容