在宏运行时使用Excel

时间:2018-01-15 03:18:00

标签: excel vba excel-vba

这有六个答案。 "打开第二个实例" "暂停"等等我没有找那个。

我正在寻找工作簿的用户,以便在宏运行时能够操作工作簿。我之前看过这个工作,用户可以在宏运行时滚动,更改标签,甚至添加和删除数据。不幸的是,我无法获得查看代码的许可(并且在我的一杯茶中犯下了CFAA违规行为),所以我不知道他们是如何做到的。

如何在宏运行时让用户编辑工作簿?举一个具体的例子,我有康威的生命游戏。用户选择单元格来翻转实时/死亡,然后可以运行宏来运行整个事物。我认为用户能够在宏运行时更改单元格会很好。 (这是选择宏的第二个)

谢谢

3 个答案:

答案 0 :(得分:1)

重构宏以使用事件。在这种情况下,您将有一系列事件处理程序(而不是一个单片宏)来响应各种触发器。这假设宏受到用户在工作表中所做操作的影响。

答案 1 :(得分:1)

抱歉,重新阅读问题。我不希望排列运行很长时间 - 不足以中断真的。

但如果确实如此,那么关于使用大量DoEvents的建议就会存在。

另一个选择是你可以使用OnTime事件来获得“心跳”

VBA Macro On Timer style to run code every set number of seconds, i.e. 120 seconds

您可以将计时器设置为3秒。每次OnTime事件发生时,您都会执行一个排列步骤。在它们之间的三秒钟内,他们可以编辑。

答案 2 :(得分:0)

执行此操作的一种方法是使用无模式用户表单(UserForm.Show vbModeless)

用户表单保持可见,但VBA在显示表单时停止运行,然后用户可以与Excel交互。然后,当用户单击表单上的按钮时,按钮后面的代码将再次开始运行。

所以实际上用户要么与Excel交互,要么与表单进行交互......