我有一个C#.Net加载项到Excel 2003.我希望有一个钩子(事件?)我可以附加,以检测用户何时从活动工作表中删除一行或多行,如当发生这种情况时,需要重新计算或丢弃一些缓存。
有没有这样的钩子或事件?如果没有,有没有办法达到我想要的目的?
答案 0 :(得分:0)
不幸的是,似乎没有办法检测何时删除行。根据{{3}},您可以使用更改事件来确定某些内容已发生变化,然后遍历工作表中的所有行以找出已更改的内容&相应地更新您的缓存。 Worksheet event list可以帮助您考虑使用更改方法的其他方式。
答案 1 :(得分:0)
您可以尝试以下方法: 创建一个指向工作表中最远单元格的命名范围(单元格XFD1048576)。 如果引发了工作表更改事件,则测试此命名范围是否仍引用相同的单元格。如果是,则不插入或删除行或列,并且事件指示其他一些更改(如单元格值更改)。 如果此命名范围引用不同的地址,则删除行/列。 如果它返回#REF错误,则添加了行或列,并且命名范围的地址超过了最大值。在这两种情况下,删除命名范围并重新创建它。