excel 2013中的示例, 我选择范围A1:C3和ctrl-c或右键单击复制。 注意到会有一个动画围绕这个范围移动,这意味着你只是复制了它。
现在我只想在我的代码中获得此范围。
我只是在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
}
答案 0 :(得分:1)
您可以使用Selection对象获取当前选择。但它可能会返回另一个选择,而不仅仅是复制。
要获取复制的Seletion对象,您需要设置一个键盘钩子来拦截Ctrl + C键盘按钮和/或重新设置功能区控件。
请参阅Using shortcut keys to call a function in an Office Add-in以开始使用Windows Hook。
最有可能重新调整功能区控件就足够了(上下文菜单使用功能区UI)。有关详细信息,请参阅Temporarily Repurpose Commands on the Office Fluent Ribbon。