【发布时间】:2011-02-03 00:43:14
【问题描述】:
我正在开发一个 Excel 模板 + VSTO 应用程序。 我为各种单元格分配了各种自定义验证和格式。
但是每当我将某些内容复制并粘贴到单元格中时,这些验证都不起作用(完全失败)。有什么方法可以禁用 Excel 模板中的 (Ctrl + V) 粘贴选项?
我认为它可以在 VBA 宏中实现。 但我不确定。
【问题讨论】:
标签: vba excel vsto copy-paste
我正在开发一个 Excel 模板 + VSTO 应用程序。 我为各种单元格分配了各种自定义验证和格式。
但是每当我将某些内容复制并粘贴到单元格中时,这些验证都不起作用(完全失败)。有什么方法可以禁用 Excel 模板中的 (Ctrl + V) 粘贴选项?
我认为它可以在 VBA 宏中实现。 但我不确定。
【问题讨论】:
标签: vba excel vsto copy-paste
您是否尝试过使用 Application.OnKey?以下代码应拦截 Ctrl+V 并有效禁用它。您应该在模板打开时调用它。
Application.OnKey("^v", "");
如果要恢复 Ctrl+V,请调用以下命令:
Application.OnKey("^v", Type.Missing);
在 VBA 中,您可以将 sub 的名称放在第二个参数中,该参数将在按下该键时运行。我不确定它在 VSTO 中是如何工作的。
当然,用户仍然可以使用单元格菜单或编辑菜单进行粘贴。另外,请注意,这将影响 Excel 实例中运行的所有工作簿。
【讨论】: