BeforeDoubleClick宏触发器在excel 2010 VBA中不起作用

时间:2013-08-06 12:43:14

标签: excel excel-vba vba

我正在尝试使用BeforeDoubleClick过程在excel 2010中触发宏。但是,它似乎没有起作用。我已经进行了广泛的搜索,看看是否有其他人遇到过同样的问题,但是我已经尝试了他们的解决方案,但要么不适用,要么不行。代码非常简单,因为我已经将其剥离以便对其进行测试。我的代码是否存在一些愚蠢的错误? (我是Stack和VB noob所以请耐心等待)

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Value = "GO" Then Cancel = True
    MsgBox ("done")
End Sub

我已经尝试将其设置为public sub,将“Application.EnableEvents = True”放在即时窗口中。工作簿设置为启用所有宏。没有正在运行的插件。我已经通过XLSTART文件夹,它全部为空。甚至在有人建议的时候创建了一个数字签名。是否仍然存在与早期版本的excel的兼容性问题?

当你在工作表中双击时,即使cancel = True,单元格也会正常打开进行编辑。

请帮助

1 个答案:

答案 0 :(得分:1)

您在工作表的本地模块(例如Sheet1)中输入的代码将无效地运行。从用户体验的角度来看,你几乎没有发现任何差异,即

  1. 如果双击值为“GO”的单元格,则会看到[Done] msgbox,退出后,您将选中单元格但不处于编辑模式(即不将光标插入单元格)

  2. 如果单击具有任何其他值的单元格(例如“abc”,甚至是空单元格),则会看到[Done] msgbox,退出后,您将处于单元格编辑模式,并带有写入光标放在当前值的最后一个字母后面,这样您就可以立即开始输入单元格。

  3. 话虽如此,即使在1.上面也没有什么阻止你开始打字。通过按下第一个字母,您的“GO”完全被您键入的单个字母所取代 - 因此用户的差异很小并且很容易被忽略,除非您的最终代码更像是重新定位选择,着色单元格等