2012-01-13 37 views
6

我想在用戶單擊Excel工作表中的單元格後顯示一個對話框。 類似這樣的:雙擊處理事件後退出/禁用編輯模式

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

它工作得很好。問題是,打開雙擊編輯模式後,預計會輸入一個公式。我如何禁用此行爲?

我想實現純功能: 〜用戶點擊一個細胞 〜出現一個對話框 〜用戶關閉該對話框 〜細胞不進入編輯模式,紙張看起來完全像以前那樣兩倍點擊事件。

回答

13

您必須取消與給定參數變量的操作:

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 

注意,你就不必設置CancelFalse因爲它是默認值(這是爲了示例目的)。