双击处理事件后退出/禁用编辑模式

wil*_*ilu 9 excel vba excel-2007 excel-vba

我想在用户单击Excel工作表中的单元格后显示一个对话框.像这样的东西:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    MsgBox "a cell was clicked!", vbOKOnly, "a click"
End Sub
Run Code Online (Sandbox Code Playgroud)

它工作得很好.问题是,在双击编辑模式打开后,预计会输入公式.如何禁用此行为?

我想实现纯粹的功能:〜用户单击一个单元格〜出现一个对话框〜用户关闭对话框〜单元格不进入编辑模式,工作表看起来与双击事件之前完全一样.

JMa*_*Max 15

您必须使用参数中给出的变量取消操作:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
     MsgBox "a cell was clicked!", vbOKOnly, "a click"
     'Disable standard behavior     
     Cancel = True
End Sub
Run Code Online (Sandbox Code Playgroud)

这是一个虚拟的例子:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim response As Variant
response = MsgBox("Are you sure you want to edit the cell?", vbYesNo, "Check")
If response = vbYes Then
    Cancel = False
Else
    Cancel = True
End If
End Sub
Run Code Online (Sandbox Code Playgroud)

请注意,您不必设置Cancel为,False因为它是默认值(这是出于示例目的).