【问题标题】:How to detect if ctrl + enter in an Excel spreadsheet with VBA如何使用 VBA 检测是否 ctrl + 输入 Excel 电子表格
【发布时间】:2017-03-24 11:07:55
【问题描述】:

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

我注意到通过点击 ctrl + enter,该单元格被取消激活以进行编辑,但仍保持选中状态。然后我想运行一些宏来引用这个单元格。

因此,使用VBA,如何检测ctrl+ enter是否被按下?

【问题讨论】:

  • 大家好,感谢您的及时回复,但是,我仍然需要一种机制来检测是否按下了“ctrl+ enter”。因为我已经将 worksheet_change 用于其他功能,并且我只想在按下“ctrl+ enter”时触发一些特殊功能。我曾尝试使用 Application.Onkey,似乎只将我的功能分配给组合键,但没有进行条件测试。再次感谢。

标签: vba excel


【解决方案1】:

最简单的方法应该是使用工作表的Change 事件。
这不会(仅)检测到 ctrl + enter,而是检测到单元格的任何变化。

Private Sub Worksheet_Change(ByVal Target As Range)

End Sub

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


另一种方法是使用OnKey 方法

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

请参阅此处以获得正确的解释:Application.OnKey Method (Excel)

【讨论】:

  • 您可能会说:这不仅会检测到 Ctrl+Enter,还会检测到单元格的任何变化。因为它读起来就像你说它不会检测到 Ctrl+Enter 而实际上它会检测到!
  • @RobinMackenzie 好的,我改进了我的措辞。但它确实没有直接检测到 Ctrl+Enter 它检测到编辑模式的结束,无论单元格内容是否更改。
  • 同意 - 它没有专门捕获 Ctrl+Enter - 只是因为单元格发生了变化而产生了这种效果。只是让你的答案更好读!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-14
  • 2011-11-15
  • 1970-01-01
  • 2012-07-23
相关资源
最近更新 更多