应用级事件的VBA加载项订阅列表

时间:2017-04-06 11:01:51

标签: vba events

我正在创建一个excel加载项(.xlam),需要在所有打开的工作簿中选择性地响应工作簿/工作表事件(用户可能打开多个工作簿)。我不希望将代码粘贴到其他打开的工作簿的ThisWorkbook模块中。

我希望用户能够选择加载项是否会响应活动工作簿的事件。

实现这一目标最合适的解决方案是什么?

目前,我正在考虑一个如下所示的解决方案:

启用加载项以通过cls_AppEvents类(cls_AppEvents实例化Workbook_open())来监听应用程序级事件。

当用户点击按钮时,将ActiveWorkbook.Name添加到一组蜇伤中。当用户再次单击按钮时,从数组中删除“ActiveWorkbook.Name”。(这需要是一个动态数组 - 有更好的选择吗?)

当应用程序级TableUpdate(例如)事件触发时,检查工作簿名称数组以查看它是否包含事件源自的工作簿名称。如果是这样,请调用任何函数。

0 个答案:

没有答案