Рабочий лист_Изменить Никогда

Я использую VBA для изменения Excel и имеет следующий простой обработчик событий внутри Sheet1:

Private Sub Worksheet_Change(ByVal Target As Range) MsgBox "HI" End Sub 

Это никогда не срабатывает, никогда. Я тестировал в окне Immediate:

? Application.EnableEvents

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

У вас есть несколько листов? Имейте в виду, что свойство CodeName листа и свойство Name (имя на вкладке в Excel) не всегда одинаковы. Например, если списки Project Explorer

 Sheet2 (Sheet1) 

Затем Sheet1 является именем и Sheet2 является CodeName.

Самый простой способ убедиться, что вы поместили код в неправильный модуль, – это щелкнуть правой кнопкой мыши по вкладке листа и выбрать «Просмотреть код». Это приведет к созданию CodePane для этого листа, и именно там должен быть ваш код.

Обычно используется с Target . Вот пример, если вы выделите M4 и измените значение, посмотрите, что произойдет:

 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$M$4" Then MsgBox ("HI") End If End Sub 

ЗДЕСЬ неплохая публикация об этом событии

Адаптируя код из этого сообщения, вы можете делать такие вещи

 Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Me.Range("$A$1:$V$100")) Is Nothing Then Exit Sub If Target.Address = "$A$1" Then MsgBox ("A1") ElseIf Target.Address = "$A$2" Then MsgBox ("A2") End If End Sub 

Хорошо – см. Комментарии ниже + Я только что протестировал, и ваш код действительно должен работать. Попробуй это? Это также не работает?

 Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Me.Cells) Then MsgBox ("A1") End If End Sub 

Этот вопрос был опубликован давно, но у меня недавно была эта проблема. Если есть какие-то другие новички vba, которые борются с этим, попробуйте сохранить свою книгу и повторно открыть ее. После того, как я это сделал, Worksheet_Change Sub на моем листе выстрелил так, как я ожидал.

Возможно, есть контроль, чтобы скомпилировать листы рабочего листа, которые мне не хватало ???

  • Метод SaveCopyAs не работает
  • Какое событие срабатывает, если исполнение кода Excel VBA преждевременно прекращено?
  • Excel Drop Down Создан из проекта c #
  • EXCEL / VBA - динамически вставлять формулы в ячейки
  • Обнаружение принтера в рабочей книге Excel.
  • Как подписчики .Net подписываются на события COM-взаимодействия, когда RuntimeCallableWrapper отключается (и как бороться с отсутствующими событиями)?
  • Событие Excel C # для пересчитанного значения ячейки
  • Расширение надстроек с расширением ленты Excel
  • VBA Excel. Как работать с кнопкой отмены в закрытии MS Excel?
  • какие события запускаются в объектной модели Excel
  • Событие Moseover формы формы формы формы Excel
  • Interesting Posts

    Ошибка SSIS при импорте столбца даты Excel и подачи в медленно изменяющийся размер

    Как использовать «кавычки» во вложенной функции IF без Excel, видя числа в кавычках в виде текста?

    Перемещение ссылки на ячейку с другого листа на один без VBA

    vba – объединение и переименование файлов и папок

    Как получить доступ к ячейке в Excel Interop при использовании фильтрованных диапазонов?

    Скопируйте и покажите, что после последней косой черты из ячейки

    Как я могу изменить свою сводную таблицу таким образом, чтобы она отображала данные по желанию?

    Выберите из таблицы Access, где ID – строка

    Перенести результаты в Excel из базы данных

    Цветная ячейка Excel автоматически в соответствии с содержимым ячейки

    Excel макрос для сохранения pptx в формате pdf; ошибка с кодом

    Кнопка Excel VB

    Как запросить таблицу MS-Access из MS-Excel (2010) с помощью VBA

    Как определить const как объект в Excel VBA?

    как импортировать из MS excel в базу данных MYSQL

    Давайте будем гением компьютера.