У меня было чертовски время, выполняя то, что я считал бы невероятно простым испытанием. Все, чего я пытаюсь достичь, - это всплывающее окно MsgBox
, когда пользователь выбирает новую ячейку или меняет содержимое ячейки.Excel Worksheet_SelectionChange событие не срабатывает вообще? (как на Office 2013, так и на 2016 год)
Я был в этом около 6 часов и до сих пор имеет нулевой успех! У меня одинаковое поведение с Office 2016 (Windows 10) и с Office 2013 (Windows 7).
Вот мой метод (ы):
- Создать новую книгу с поддержкой макросов.
- Запишите новый макрос в книге. Остановите запись. Открыть VBA.
- Откройте код для «Module 1» и замените нежелательный код на код ниже. Сохраните файл.
- Файл -> Параметры -> Центр доверия -> Настройки центра доверия -> Параметры макроса -> «Доверять доступ к объектной модели проекта VBA». Сохраните файл.
- Я также обеспечил
Application.EnableEvents = True
- Я ожидаю, чтобы быть в состоянии нажать на различные клетки, или редактировать клетки, и получил
MsgBox
всякий раз, когда происходит событие.
Вот мой код:
Option Explicit
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
MsgBox "changed!"
End
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox "selected!"
End Sub
Public Sub Just_In_Case()
Application.EnableEvents = True
End Sub
Что мне не хватает? Есть ли параметр безопасности, предотвращающий это событие? У меня такое же поведение в Интернете на работе, как и в автономном режиме дома.
Заранее благодарю вас за помощь! :)
PS Вот скриншот моего окружения VBA, если применимо: https://i.stack.imgur.com/yXkMK.png
Таким образом, вы хотите, чтобы, если пользователь выбирает Лист 2 (например), появляется всплывающее окно, уведомляющее, что пользователь выбрал другой лист? –