在VSTO中禁用Excel模板中的Ctrl + V粘贴选项

时间:2011-02-01 07:21:12

标签: vba excel-vba vsto copy-paste excel

我正在开发Excel模板+ VSTO应用程序。 我为各种单元格分配了各种自定义验证和格式。

但每当我将某些内容复制并粘贴到单元格中时,这些验证都不起作用(完全失败)。有没有办法让我可以从Excel模板中禁用( Ctrl + V )粘贴选项?

我认为它可以在VBA宏中实现。 但我不确定。

1 个答案:

答案 0 :(得分:3)

您是否尝试过使用Application.OnKey?以下代码应截取Ctrl + V并有效禁用它。您应该在模板打开时调用它。

Application.OnKey("^v", "");

如果您想要恢复Ctrl + V,请调用以下内容:

Application.OnKey("^v", Type.Missing);

在VBA中,您可以将sub的名称放在第二个参数中,该参数将在按下该键时运行。我不确定它在VSTO中是如何工作的。

当然,用户仍然可以使用单元格菜单或编辑菜单进行粘贴。另请注意,这将影响在Excel实例中运行的所有工作簿。