Ваш код использует Worksheet_SelectionChange
, который срабатывает только при выборе другой ячейки (отсюда и название Selection Change
).
В качестве альтернативы, если все в порядке, если ваша [неизвестная] цель достигнута с помощью дважды щелкните или щелкните правой кнопкой мыши , тогда есть другие события рабочего листа, которые помогут:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
MsgBox Target.Address & " was double clicked"
Cancel = True 'don't edit cell
End Sub
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
MsgBox Target.Address & " was right clicked"
Cancel = True 'don't open context menu
End Sub
Обратите внимание, что код для этого события* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 10 * 10 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} * * * * * * * * * * * * * * * * * * * *] с-что-то к-с-не »"-! "* API
Если это должен быть один щелчок, существуют «хитрые» способы сделать это, например, добавление события Click .Это не встроенная функция Excel VBA, и поэтому этот метод обычно не рекомендуется.
Включает проверку сообщения WM_MOUSEMOVE
при щелчке мыши по ячейке, что достигается путем вызова PeekMessage
API внутри события Worksheet_SelectionChange
.Дополнительная информация и примеры здесь .
Прозрачная командная кнопка
Ни один из этих методов не был протестирован, и вам может потребоваться сделать какое-то необычное кодирование, чтобы заставить их работать.В зависимости от как часто будет нажата одна и та же ячейка, которая уже выбрана (и, следовательно, насколько эта функциональность для вас), вы можете просто переосмыслить макет вашего рабочего листа.
Например, вы можете добавить дополнительный столбец и сделать так, чтобы пользователь щелкнул ячейку рядом с ячейкой со значением для активации окна сообщения.
Дополнительная информация: