【问题标题】:Detecting VBA macro running from VSTO addin检测从 VSTO 插件运行的 VBA 宏
【发布时间】:2018-06-02 20:28:39
【问题描述】:

如果工作簿中的更改是由用户界面或 VBA 宏完成的,我有什么方法可以捕获?

当用户更改许多文件中的某些单元格时,我让 VSTO 插件做一些事情。 一些文件中包含 VBA 宏,这些宏可以修改相同的单元格。当动作源在 VBA 代码中时,我想忽略这种动作。

到目前为止我的想法: 1) 事件 - 没有找到合适的 2)系统堆栈 - 不知道我应该如何以及寻找什么 3) 动态 VBA 代码修改 - 添加标志 - 不优雅也不安全。

感谢您的帮助

【问题讨论】:

  • 您无法知道单元格是否被用户或 VBA 代码更改。如果您想忽略响应 VBA 代码而引发的Worksheet_Change,则必须在让宏运行之前设置EnableEvents = False,但仅此一项就可能破坏宏。

标签: c# vba excel vsto


【解决方案1】:

无法检测谁对工作表进行了更改。如果工作表被隐藏(请参阅 Visible 属性)并且触发了 Change 事件,则 VBA 或 VSTO 代码将起作用。

【讨论】:

    猜你喜欢
    • 2020-07-29
    • 2020-04-20
    • 1970-01-01
    • 1970-01-01
    • 2021-04-23
    • 2020-05-09
    • 1970-01-01
    • 1970-01-01
    • 2016-11-10
    相关资源
    最近更新 更多