VBA: Прервать двойной щелчок (два одиночных клика) - PullRequest
0 голосов
/ 21 мая 2018

Сценарий

У меня есть лист Excel, где я использую определенную ячейку (скажем, C3) в качестве кнопки: каждый раз, когда ячейка выбрана (SelectionChange), определеннаяфункция выполняется.

Чтобы иметь возможность щелкнуть ячейку несколько раз подряд, после выполнения желаемой функции я устанавливаю выделение обратно в нейтральную ячейку (скажем, A1).Таким образом, C3 может быть снова выбран, и функция может быть запущена снова.

Проблема

Я хочу нажать на ячейку кнопки (C3) несколькораз подряд в быстрой последовательности.Однако, когда я дважды щелкаю по нему два раза подряд (двойной щелчок), он фактически входит в режим редактирования для нейтральной ячейки (A1).

Мне известно о параметре Cancel = True вОбработчик событий BeforeDoubleClick.Тем не менее, это не работает для меня, потому что это отменяет все событие в целом: при Cancel = True второй щелчок просто будет полностью отменен, и моя желаемая функция просто не будет работать.

Вопрос

Какие-нибудь умные идеи о том, как предотвратить двойной щелчок, в то же время все еще интерпретируя второй щелчок как обычный обычный щелчок?

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

Вы можете попробовать безопасность камеры.Не допускайте выбора заблокированных ячеек и используйте VBA для включения или выключения защиты.

По умолчанию ячейка может быть разблокирована, а прозрачная метка может заблокировать ячейку при наведении курсора мыши.

0 голосов
/ 21 мая 2018

Просто разверните мой комментарий к ответу:

Можете ли вы отключить Allow editing directly in cells на File > Options > Advanced > Editing Options?Хотя это не программный подход, он может быть самым простым решением вашей проблемы.

...