0

我在 Excel 中有一个表格,我想在用户修改单元格值时检测更改。为了反映这些特定的变化,我需要知道单元格的位置和旧的单元格值。我能够在 Excel VBA/COM 插件中实现这一点,但不能使用 JavaScript。

4

1 回答 1

3

目前没有任何直接的方法可以获取位置和旧单元格值。但是,在有更好的方法之前,您可能会使用以下一些解决方法:

- 跟踪用户表的内容:当它第一次链接到加载项时,您可以获得整个表。添加绑定并侦听BindingDataChanged事件以检测更新。每次有更新时,您都可以手动将其与您自己的副本进行比较。重新启动加载项后,您可以使用Settings对象重新初始化内存中的副本。

- 使用BindingSelectionChanged事件和Document.SelectionChanged事件跟踪用户在表中的选择。然后,每当表中的数据发生更改时,使用保存的BindingSelectionChangedEventArgs确定在用户进行更改时选择了哪个单元格。请注意,即使用户什么都不做,表格也可能发生更改 - 例如,另一个加载项可能会更改内容。另请注意,BindingSelectionChangedEventArgs 报告用户选择更改后的最终位置,而不是初始位置,因此每当用户更改单元格但将她的选择保留在表格内时,您都需要使用倒数第二个位置。

此外,您可能实际上不需要使用上述解决方法,具体取决于您的加载项正在执行的操作:例如,如果表很小,您可以在发生更改时完全覆盖必要的列。

-Michael(插件团队的项目经理)

于 2016-01-05T18:28:44.840 回答