Как предотвратить событие выбора при нажатой клавише со стрелкой - PullRequest
0 голосов
/ 28 февраля 2020

У меня есть класс-оболочка VBA Excel.Worksheet с реализацией события SelectionChange. Работа, выполняемая в этом случае, занимает около 1/2 секунды, что является приемлемой производительностью при щелчке по листу. Однако, удерживая нажатой клавишу со стрелкой на клавиатуре для масштабирования вокруг листа, как вы можете себе представить, это заметно плохо при обработке в 1/2 секунды для каждой ячейки.

Мне интересно, есть ли способ проверить, нажаты ли клавиши со стрелками и пропускают ли это событие SelectionChange. Как только клавиша со стрелкой вверх, мне нужно будет выполнить SelectionChange. Я не думаю, что мой код добавляет много значения моему вопросу, но вот простая версия моего класса ..

Option Explicit

Private WithEvents wrappedSheet As Worksheet

Private Sub Class_Initialize()
    Set wrappedSheet = ActiveSheet
End Sub

Private Sub Class_Terminate()
    Set wrappedSheet = Nothing
End Sub

Public Sub Init(xlWorksheet As Worksheet)
    Set wrappedSheet = xlWorksheet
End Sub

Private Sub wrappedSheet_SelectionChange(ByVal Target As Range)

    'If Arrow Keys aren't being held down....
    '//Do some work that takes a second or two
    '..
    '..


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