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

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

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

它工作得很好。 问题是,双击编辑模式打开后,公式将被input。 我如何禁用此行为?

我想实现纯粹的function:〜用户点击一个单元格〜一个对话框出现〜用户closures对话框〜一个单元格不进入编辑模式,工作表看起来就像双击事件之前。

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

 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 

这是一个虚拟的例子:

 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 

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