我正在开发Excel模板+ VSTO应用程序。 我为各种单元格分配了各种自定义验证和格式。
但每当我将某些内容复制并粘贴到单元格中时,这些验证都不起作用(完全失败)。有没有办法让我可以从Excel模板中禁用( Ctrl + V )粘贴选项?
我认为它可以在VBA宏中实现。 但我不确定。
答案 0 :(得分:3)
您是否尝试过使用Application.OnKey?以下代码应截取Ctrl + V并有效禁用它。您应该在模板打开时调用它。
Application.OnKey("^v", "");
如果您想要恢复Ctrl + V,请调用以下内容:
Application.OnKey("^v", Type.Missing);
在VBA中,您可以将sub的名称放在第二个参数中,该参数将在按下该键时运行。我不确定它在VSTO中是如何工作的。
当然,用户仍然可以使用单元格菜单或编辑菜单进行粘贴。另请注意,这将影响在Excel实例中运行的所有工作簿。