如何在Excel电子表格中使用VBA检测Ctrl+Enter组合键

3

我的理解是:当单元格处于编辑状态时,宏是不可激活的。

我注意到通过按下 Ctrl+Enter,可以取消单元格的编辑状态,但仍然保持选定状态。我想运行一些与此单元格相关的宏。

因此,使用VBA,如何检测是否按下了 Ctrl+Enter?


大家好,感谢及时回复。然而,我仍需要一种机制来检测是否按下了“ctrl+ enter”。因为我已经在其他功能中使用了worksheet_change,并且我想仅在按下“ctrl+ enter”时触发一些特殊操作。我尝试过使用Application.Onkey,但似乎只是将我的函数分配给键组合,而不进行条件测试。再次感谢。 - vox
1个回答

4
最简单的方法是使用工作表的Change事件。
这不仅可以检测到ctrl+enter,还可以检测到单元格的任何更改。
Private Sub Worksheet_Change(ByVal Target As Range)

End Sub

这个子程序必须添加到工作表代码中(而不是模块中)!


另一种方法是使用OnKey方法。

 Application.OnKey "^{RETURN}", "InsertProc" 

请参考以下链接了解更详细的信息:Application.OnKey 方法 (Excel)

你可能会说:这不仅可以检测到 Ctrl+Enter,还可以检测到单元格的任何更改。因为它看起来像是在说它不能检测到 Ctrl+Enter,但实际上它可以! - Robin Mackenzie
@RobinMackenzie 好的,我稍微改进了措辞。但它确实不能直接检测到 Ctrl+Enter,而是检测编辑模式的结束,无论单元格内容是否更改。 - Pᴇʜ
同意 - 它并没有特别捕捉到 Ctrl+Enter - 只是因为单元格发生了变化而产生了这种效果。只是让你的答案读起来更好看! - Robin Mackenzie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接