这是一个问题。 My AddIn具有一个UDF,它可以将数据从API提取到Excel中。输入UDF后,将更新缓存。
缓存包含数据键,值,上次更新日期以及映射到输入UDF的单元格地址的位置。数据密钥由输入到UDF中的参数组成,并且可能包含相对日期信息。
如果删除或插入行,则由于工作表更改事件而更新缓存。如果进行了重新计算,则会从缓存中为工作簿/电子表格中的特定位置提取值。
问题
对数据进行排序时,将对值进行排序,这会使高速缓存无效。当一列中有重复的键/值数据时,尤其是值的上次更新日期不同时,我们将不知道如何从缓存中检索此数据。
由于没有“ true” excel VSTO事件来指示发生了排序(除了AfterCalculate事件会触发所有事件),因此我们不知道数据是否已重新排序以及是否需要更新缓存。当执行或重新执行Excel重新计算时,用户将看到缓存无效,因为显示的值表示需要再次刷新数据。
我正在寻找一种针对UDF的Excel DNA或针对Excel事件的VSTO的方法,我可以将UDF的数据键/值与原始位置和新位置相关联。如果有一种方法可以将元数据与单元格值相关联,那似乎是正确的方法。
使用隐藏的标签并维护关联的方法也可能有效。
任何建议将不胜感激。