检测用户在Excel 2003中删除行的时间

时间:2011-04-27 07:40:45

标签: interop vsto excel-2003

我有一个C#.Net加载项到Excel 2003.我希望有一个钩子(事件?)我可以附加,以检测用户何时从活动工作表中删除一行或多行,如当发生这种情况时,需要重新计算或丢弃一些缓存。

有没有这样的钩子或事件?如果没有,有没有办法达到我想要的目的?

2 个答案:

答案 0 :(得分:0)

不幸的是,似乎没有办法检测何时删除行。根据{{​​3}},您可以使用更改事件来确定某些内容已发生变化,然后遍历工作表中的所有行以找出已更改的内容&相应地更新您的缓存。 Worksheet event list可以帮助您考虑使用更改方法的其他方式。

答案 1 :(得分:0)

您可以尝试以下方法: 创建一个指向工作表中最远单元格的命名范围(单元格XFD1048576)。 如果引发了工作表更改事件,则测试此命名范围是否仍引用相同的单元格。如果是,则不插入或删除行或列,并且事件指示其他一些更改(如单元格值更改)。 如果此命名范围引用不同的地址,则删除行/列。 如果它返回#REF错误,则添加了行或列,并且命名范围的地址超过了最大值。在这两种情况下,删除命名范围并重新创建它。