【问题标题】:DoubleClick captured in my UserForm在我的用户窗体中捕获的 DoubleClick
【发布时间】:2015-11-03 21:54:22
【问题描述】:

我敢打赌,我的 Excel 2013 宏中正在发生以下情况:

  1. Sub WorkSheet_BeforeDoubleClick 正在调用表单
  2. 一些逻辑填充并显示表单
  3. 双击事件被表单捕获为列表框中不需要的选择

有没有正确的方法来抑制子程序中间的双击?我有解决它的想法(让线程工作,重新定位表单工作,根据其他事件工作锁定和解锁列表框)这些都是糟糕的解决方法,我希望有一个内置的解决方案,我只是不知道。

(并且设置 Cancel = True 不起作用,因为我相信设置只有在代码完成运行后才会生效。双击成为子程序中间的选择)

【问题讨论】:

  • 我不明白你的意思,当你双击一个单元格时会发生什么?你想发生什么或不想发生什么?

标签: vba excel


【解决方案1】:

如果问题是您从宏启动的表单捕获了相同的双击事件,请尝试以下操作:

1) 让您的宏通过“Application.OnTime()”调用新的子例程,安排它在未来运行足够长的时间以通过“物理点击”,可能是 1 秒。而不是像您当前所做的那样直接调用 Form.Show()。

2) 您的新子例程只需要做:Form.Show() 以及您认为必要的任何其他内容。

【讨论】:

  • 不。 EnableEvents 会抑制 BeforeDoubleClick 宏本身,我试图忽略 BeforeDoubleClick 调用的宏中的物理点击
  • 所以,我不确定我是否遵循,如果我错了,请纠正我:1)你双击,一个宏触发 2)宏启动一个表单 3)表单也捕获了相同的双击和休息 这是正确的吗?
  • 是的。虽然休息有点强,但无意中选择了我的用户窗体上的一个项目
  • 正如我在我的问题中说得很糟糕(“让线程工作”),我知道如何使用各种方法解决问题。我想知道是否有内置或惯用的方法来解决这个问题
猜你喜欢
  • 1970-01-01
  • 2010-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多