【问题标题】:VBA: Interrupt double click (two single clicks)VBA:中断双击(两次单击)
【发布时间】:2018-10-30 19:01:04
【问题描述】:

场景

我有一个 Excel 工作表,其中我使用某个单元格(例如 C3)作为按钮功能:只要选择了单元格 (SelectionChange),就会执行某个函数。

为了能够连续多次单击单元格,在执行所需的功能后,我将选择设置回中性单元格(例如A1)。这样C3就可以再次被选中,函数又可以运行了。

问题

我想快速连续多次单击按钮单元格 (C3)。但是,当我连续单击它两次(双击)时,它实际上进入了中性单元格的编辑模式(A1)。

我知道 BeforeDoubleClick 事件处理程序中的选项 Cancel = True。但是,这对我不起作用,因为它完全取消了整个事件:使用Cancel = True,第二次点击将完全取消,我想要的功能根本不会运行。

问题

关于如何防止双击同时仍将第二次单击解释为普通单击的任何聪明的想法?

【问题讨论】:

  • 由于没有点击事件,我假设您在代码中使用了 SelectionChange 事件,对。也许展示代码是个好主意,否则您可能不会得到太多帮助。
  • 如果在File > Options > Advanced > Editing Options 上禁用Allow editing directly in cells,您可以轻松解决问题。
  • @Pspl 请停止在 cmets 中回答问题。如果您认为自己有答案,请发布答案。或者根本不发帖。评论不应用于发布答案。
  • @teylyn,你完全正确。谢谢你的建议。
  • 有理由不使用实际按钮吗?你的双击问题就会消失。

标签: vba excel double-click


【解决方案1】:

你可以试试手机安全。不允许选择锁定的单元格并使用 VBA 打开或关闭安全性。

单元格默认解锁,透明标签可以在鼠标悬停时锁定单元格。

【讨论】:

  • 感谢您的想法,但这也不起作用,因为我需要能够选择一个单元格才能取消选择按钮单元格。
  • 当您只是在单元格上放置一个标签并且即使标签的 onclick 只是选择下面的单元格时会发生什么?我在标签上没有遇到任何双击延迟...但我不知道对您的按钮状单元格有什么影响
  • 我认为这对我的问题没有帮助。基本上,即使我连续两次单击,我也希望获得两次单击。我认为问题在于 VBA 仅提供 BeforeDoubleClick 事件而没有 AfterDoubleClick
  • 不要使用双击事件!使用单击。我一起完成了它,并用我最后的回复进行了尝试。问题是,我不知道你在用那个细胞做什么,所以我不能把它带到下一步。但我告诉你我已经确认我可以点击一个标签,因为我的骨手指可以点击,并且每次都会选择该单元格。这就是我确认它的方式:我创建了标签并设置 onclick 以选择特定的单元格。我有一个工作表 selectionchange 事件,该事件将选择从该单元格中拉出。这些选择变化的速度太快了,我无法用肉眼验证。
  • 所以我添加了一个标志并将其值发送到一个单元格。 > 点击点击点击点击点击点击点击点击
【解决方案2】:

只是将我的评论扩展到答案:

你能在File > Options > Advanced > Editing Options 上禁用Allow editing directly in cells 吗?虽然这是一种非编程方法,但它可能是解决问题的最简单方法。

【讨论】:

  • 很好的输入,但是,我仍然希望允许直接在单元格中进行编辑
猜你喜欢
  • 2020-01-15
  • 1970-01-01
  • 2016-05-12
  • 1970-01-01
  • 2019-04-10
  • 1970-01-01
  • 1970-01-01
  • 2016-11-30
  • 2021-12-23
相关资源
最近更新 更多