c# - 检测从 VSTO 插件运行的 VBA 宏
问题描述
如果工作簿中的更改是通过用户界面或 VBA 宏完成的,有什么方法可以捕获?
当用户更改许多文件中的某些单元格时,我让 VSTO 插件做一些事情。一些文件中包含 VBA 宏,这些宏可以修改相同的单元格。当动作源在 VBA 代码中时,我想忽略这种动作。
到目前为止我的想法:1)事件 - 没有找到正确的 2)系统堆栈 - 不知道我应该如何以及寻找什么 3)动态 VBA 代码修改 - 添加标志 - 不优雅也不安全。
谢谢你的帮助
解决方案
无法检测谁在工作表上执行更改。如果工作表被隐藏(请参阅Visible属性)并且触发了 Change 事件,则 VBA 或 VSTO 代码将起作用。