【问题标题】:Call a function after User delete Excel Work Sheet in C#用户在 C# 中删除 Excel 工作表后调用函数
【发布时间】:2021-08-27 09:51:59
【问题描述】:

我正在使用Microsoft.Office.Interop.Excel,当用户删除 Excel 工作表时我需要调用自定义函数(右键单击工作表名称并删除)。

如何访问工作表删除事件?

我在 Microsoft Docs 中找到了 WorkbookEvents_SheetBeforeDeleteEventHandler,但我正在寻找类似 @​​987654324@ 的内容。

我怎样才能做到这一点?

【问题讨论】:

  • 只是一个属于 hack 类别的建议:在“之前”事件上启动一个计时器,并在可接受的时间内轮询工作表的工作表存在,然后放弃计时器。如果工作表被真正删除,您将有机会以这种方式检测到它。这个解决方案显然是一个 hack(嘿,任何人,请不要因此而投反对票!)但如果你没有发现任何其他可能性,这可能会起作用。
  • @cly 感谢您的建议。顺便说一句,寻找一个可靠的解决方案而不是破解 :-)
  • 我不确定WorkbookEvents_Event.SheetTableUpdate 做了什么(描述不是真正的描述性......),也许它会在一张纸被移除后引发?我要检查的其他候选人是 SheetActivate 和 SheetDeactivate。
  • @Steeeve 感谢您的建议。我想,我可以用SheetActivate做点什么

标签: c# .net excel office-interop excel-interop


【解决方案1】:

如果一个工作表被删除,另一个工作表将变为活动工作表,因此处理 Workbook.SheetActivate 事件会有所帮助。它在任何工作表被激活时触发。在事件处理程序中,您可以检查“已删除”的工作表是否仍然存在。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-06
    • 1970-01-01
    • 1970-01-01
    • 2019-04-30
    • 1970-01-01
    • 1970-01-01
    • 2016-03-17
    • 1970-01-01
    相关资源
    最近更新 更多