Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA:中断双击(两次单击)_Vba_Excel_Double Click - Fatal编程技术网

VBA:中断双击(两次单击)

VBA:中断双击(两次单击),vba,excel,double-click,Vba,Excel,Double Click,场景 我有一个excel工作表,其中我使用某个单元格(例如C3)作为按钮功能:每当选中该单元格(SelectionChange),就会执行某个功能 为了能够在一行中多次单击单元格,在执行所需功能后,我将选择设置回中性单元格(例如A1)。这样,就可以再次选择C3,并再次运行该功能 问题 我想连续几次快速单击按钮单元格(C3)。但是,当我很快在一行中单击它两次(双击)时,它实际上进入了中性单元格的编辑模式(A1) 我知道BeforeDoubleClick事件处理程序中的选项Cancel=True。但

场景

我有一个excel工作表,其中我使用某个单元格(例如
C3
)作为按钮功能:每当选中该单元格(SelectionChange),就会执行某个功能

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

问题

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

我知道BeforeDoubleClick事件处理程序中的选项
Cancel=True
。但是,这对我不起作用,因为它会完全取消整个事件:使用
Cancel=True
第二次单击将完全取消,并且我所需的函数将无法运行

问题


关于如何防止双击,同时仍将第二次单击理解为普通的单次单击,有什么明智的想法吗?

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


是否可以在
文件>选项>高级>编辑选项
上禁用
允许直接在单元格中编辑?尽管这是一种非编程方法,但它可能是解决您的问题的最简单的方法。

您可以尝试cell security。不允许选择锁定的单元格,并使用VBA打开或关闭安全性


默认情况下,单元格可以解锁,透明标签可以在鼠标滚动时锁定单元格。

由于没有单击事件,我假设您对代码使用SelectionChange事件,对吗。显示代码可能是个好主意,否则您可能不会得到太多帮助。如果您在
文件>选项>高级>编辑选项
@Pspl上禁用
允许在单元格中直接编辑
,您可以轻松解决问题。请停止在评论中回答问题。如果你认为你有答案,发布一个答案。或者根本不发帖。评论不应用于发布答案。@teylyn,你完全正确。谢谢你的建议。有没有理由不使用实际的按钮?然后你的双击问题就会消失。输入很好,但是,我仍然希望允许直接在CellsHanks中编辑想法,但这也不起作用,因为我需要能够选择一个单元格才能取消选择按钮单元格。当你只是在单元格上放置一个标签,而连标签的onclick只选择下面的单元格时会发生什么?我没有在标签上遇到任何双击延迟。。。但是我不知道这对你的按钮式手机有什么影响。我认为这对我的问题没有帮助。基本上,我想得到两个单一的点击,即使我在短时间内连续点击两次。我认为问题在于VBA只提供BeforeDoubleClick事件,不提供AfterDoubleClick不要使用双击事件!使用单键单击。我一起看了一遍,用最后一个回答试了一下。问题是,我不知道你在用那个细胞做什么,所以我不能把它带到下一步。但我要告诉你们的是,我已经确认我可以点击标签,就像我骨瘦如柴的手指可以点击一样,而且每次都会选中这个细胞。这就是我如何确认它的:我创建了标签,并设置onclick以选择特定的单元格。我有一个工作表selectionchange事件,它将选择从该单元格中删除。这些选择更改的速度太快,我无法直观地验证。因此我添加了一个标志并将其值发送到单元格。>点击<[选择目标单元格](flag=not flag)[换表从目标单元格中拉出]当我去>点击<>点击<>点击<>点击<>点击<>点击<>点击<>点击<>那小小的真假像龙卷风中的车牌一样快速翻转。同样,这是一次事件单击,而不是双击