Если вы здесь, вероятно, вы хотите узнать, как запускать подпрограмму каждый раз, когда в конкретный лист вносятся изменения. Эта статья научит именно этому. Итак, приступим.

Синтаксис обработчика событий изменения рабочего листа:

Private Sub worksheet_change(ByVal Target As Range)

'your code

'

'

End Sub

Этот код должен быть написан в объекте рабочего листа для работы, а не в обычном модуле.

Private Sub worksheet_change(ByVal Target As Range)

Msgbox "You updated something in this sheet"

End Sub

Если у вас есть этот код на листе Sheet1, и вы что-то записываете или удаляете на листе Sheet1, появится сообщение, что «Вы что-то обновили на этом листе».

В обычных модулях работать не будет. Но вы можете вызывать подпрограммы из любого модуля. Мы сделаем то же самое на этом занятии.

image

Сценарий:

Макрос RunExcel при внесении каких-либо изменений в рабочий лист

image

Итак, допустим, у нас есть макрос, который изменяет цвет ячеек в зависимости от некоторого условия. Так же, как условное форматирование Excel. Единственное отличие состоит в том, что цвет ячеек изменяется, когда мы запускаем этот код VBA с помощью кнопки или команды запуска, а не при изменении значений. Мы хотим, чтобы макрос запускался всякий раз, когда в листе вносятся изменения. Здесь помогут VBA Events. Теперь для этого мы будем использовать событие изменения рабочего листа.

Выполните следующие действия:

  • Перейдите в проводник проекта и дважды щелкните лист, на котором вы хотите вызвать событие worksheet.change. Я хочу вызвать событие, когда в Sheet2 были внесены некоторые изменения, поэтому я дважды щелкаю Sheet2. Вы также можете щелкнуть правой кнопкой мыши и щелкнуть код просмотра, чтобы открыть область написания кода для объектов листа. В области кода напишите эту строку кода.

Private Sub Worksheet_Change(ByVal Target As Range)

End Sub

worksheet_change (Target as Range) — это сохраненная подпрограмма, которая запускается при изменении кода, содержащего лист.

Когда вы напишете этот код, вы увидите, что объект меняется на рабочий лист. См. Раскрывающийся список в верхнем левом углу. В раскрывающемся списке вверху справа указано событие «изменение» .

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

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

image_ * Now just put your code in this segment. I want to call my subroutine that is in a module. So I simply call that subroutine in this worksheet event handler. My subroutine isFormatUsingVBA() in Module1

Private Sub worksheet_change(ByVal Target As Range)

Call FormatUsingVBA

End Sub

Теперь, когда мы будем вносить изменения в лист 2, будет запускаться макрос FromatUsingVBA.

image

Так что да, ребята, вот как можно запустить сценарий VBA, когда лист изменяет свое содержимое, используя обработчик событий изменения рабочего листа. Надеюсь, это было полезно. Если у вас есть какие-либо вопросы относительно этого обработчика событий, укажите его в разделе комментариев.

Статьи по теме:

link: / events-in-vba-simplest-vba-code-to-highlight-current-row-and-column-using [Простейший код VBA для выделения текущей строки и столбца с помощью] * | Используйте этот небольшой фрагмент VBA для выделите текущую строку и столбец листа.

link: / events-in-vba-the-worksheet-events-in-excel-vba [События рабочего листа в Excel VBA] * | Событие рабочего листа действительно полезно, когда вы хотите, чтобы ваши макросы запускались, когда на листе происходит указанное событие.

link: / events-in-vba-run-macro-if-any-change-made-on-sheet-range [Запустить макрос, если любое изменение, сделанное на листе в указанном диапазоне] * | Чтобы запустить код макроса при изменении значения в указанном диапазоне, используйте этот код VBA. Он обнаруживает любые изменения, сделанные в указанном диапазоне, и запускает событие.

Популярные статьи:

link: / keyboard-formula-shortcuts-50-excel-shortcuts-to-вашу-продуктивность [50 комбинаций клавиш Excel для повышения вашей продуктивности] | Выполняйте свою задачу быстрее. Эти 50 ярлыков заставят вас работать в Excel еще быстрее.

link: / формулы-и-функции-введение-функции-vlookup [Функция ВПР в Excel] | Это одна из наиболее часто используемых и популярных функций Excel, которая используется для поиска значений из разных диапазонов и листов. link: / tips-countif-in-microsoft-excel [COUNTIF в Excel 2016] | Подсчитайте значения с условиями, используя эту удивительную функцию. Вам не нужно фильтровать данные для подсчета определенного значения.

Функция Countif важна для подготовки вашей приборной панели.

link: / excel-formula-and-function-excel-sumif-function [Как использовать функцию СУММЕСЛИ в Excel] | Это еще одна важная функция приборной панели. Это поможет вам суммировать значения для конкретных условий.