【发布时间】:2018-06-02 20:28:39
【问题描述】:
如果工作簿中的更改是由用户界面或 VBA 宏完成的,我有什么方法可以捕获?
当用户更改许多文件中的某些单元格时,我让 VSTO 插件做一些事情。 一些文件中包含 VBA 宏,这些宏可以修改相同的单元格。当动作源在 VBA 代码中时,我想忽略这种动作。
到目前为止我的想法: 1) 事件 - 没有找到合适的 2)系统堆栈 - 不知道我应该如何以及寻找什么 3) 动态 VBA 代码修改 - 添加标志 - 不优雅也不安全。
感谢您的帮助
【问题讨论】:
-
您无法知道单元格是否被用户或 VBA 代码更改。如果您想忽略响应 VBA 代码而引发的
Worksheet_Change,则必须在让宏运行之前设置EnableEvents = False,但仅此一项就可能破坏宏。