Выйти / отключить режим редактирования после события двойного щелчка - PullRequest
8 голосов
/ 13 января 2012

Я хотел бы отобразить диалоговое окно после того, как пользователь щелкнет ячейку на листе Excel. Примерно так:

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

Работает отлично. Проблема заключается в том, что после включения режима редактирования двойным щелчком и ожидается ввод формулы. Как отключить это поведение?

Я бы хотел достичь чистой функциональности: ~ пользователь щелкает ячейку ~ появляется диалоговое окно ~ пользователь закрывает диалог ~ ячейка НЕ ​​переходит в режим редактирования, лист выглядит точно так же, как и до события двойного щелчка.

1 Ответ

14 голосов
/ 13 января 2012

Вы должны отменить действие с переменной, указанной в аргументе:

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

Обратите внимание, что вам не нужно устанавливать *От 1007 * до False, потому что это значение по умолчанию (это для примера).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...