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

发布于 2024-10-15 20:21:10 字数 193 浏览 1 评论 0原文

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

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

我认为可以用VBA宏来实现。 但我不确定。

I am working on an Excel template + VSTO application.
I have assigned various custom validations and formats for various cells.

But whenever I copy and paste something into the cell, these validations do not work (fails completely). Is there any way so I can disable (Ctrl + V) paste options from the Excel template?

I think it can be implemented in VBA macros.
But I'm not sure about it.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

猥琐帝 2024-10-22 20:21:10

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

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

如果您想恢复 Ctrl+V,请调用以下命令:

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

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

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

Have you tried using Application.OnKey? The following code should intercept Ctrl+V and effectively disable it. You should call it when your template opens.

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

If you would like to restore Ctrl+V, call the following:

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

In VBA you can put the name of a sub in the second parameter, which will be run when that key is pressed. I'm not sure how that works in VSTO.

Of course, the user could still use the cell menu or the edit menu to paste. Also, be aware that this will affect all workbooks running in the Excel instance.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文