在vsto C#中,复制(不粘贴)范围时,如何知道这个范围(row / col / rect info)?

示例在Excel 2013中,我select范围A1:C3和ctrl-c或右键单击复制。 注意到会有一个animation在这个范围内移动,这意味着你只是复制了它。

现在我只想在我的代码中获得这个范围。

我只是将复制发明吸引到了Windows消息中。 我怎样才能得到这个范围? 请帮助。

示例代码:

private override onCopy(Excel.Range source){ //... base.onCopy(source); //Now I can get the source range when copy happens. //But in vsto, there is no such method. //Help me to work around } 

您可以使用Selection对象来获取当前select。 但它可能会返回另一个select,而不仅仅是复制。

要获取复制的Seletion对象,需要设置用于拦截Ctrl + C键盘button和/或重新设置function区控件的键盘钩子。

请参阅使用快捷键调用Office加载项中的函数以开始使用Windows挂钩。

很可能重新调整function区控件就足够了(上下文菜单使用function区UI)。 请参阅Office Fluentfunction区上的临时重新命名命令以获取更多信息。