Перейти к содержимому
Наше приложение «Дешевые авиабилеты» в AppGallery >>

VBA Excel. Запуск макроса при изменении ячейки

    Запуск макроса (процедуры) из кода VBA Excel при изменении значения ячейки вручную или программным способом, а также при нажатии клавиши Delete.

    Запуск макроса при изменении ячейки

    Пример кода

    Код VBA Excel для запуска макроса (процедуры) при изменении значения ячейки на рабочем листе:

    Range("A1:D8") — это диапазон, при изменении значения любой ячейки которого, произойдет выполнение функции MsgBox. Диапазон может состоять из одной ячейки.

    Код размещается в модуле рабочего листа, при изменении значения ячейки на котором следует запустить макрос (процедуру).

    Вместо функции MsgBox в приведенном коде следует разместить ссылку на исполняемую процедуру (макрос) VBA Excel.

    Примечания

    • Макрос будет запущен при изменении значения ячейки вручную или программным способом, а также при нажатии клавиши Delete.
    • Вызываемая процедура будет запущена и в том случае, если в ячейку будет записано то же самое значение, которое в ней и было. Например, в ячейке было число 28, и в нее записали вручную или программно число 28; или нажали клавишу Delete на пустой ячейке.
    • Макрос не будет запущен при изменении значения ячейки с формулой в результате ее пересчета.

    Исключение ложного срабатывания

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

    В это примере функция MsgBox вынесена в отдельную процедуру, которая вызывается при изменении значения в ячейке C4.

    Значение ячейки C4 присваивается переменной x при активации рабочего листа и, затем, перезаписывается при каждой перезаписи значения в ячейке.

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


    Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.

    Добавить комментарий

    Ваш комментарий будет опубликован после прохождения обязательной модерации. Исходящие ссылки не допускаются. Время модерации составит от нескольких минут до нескольких часов в зависимости от времени суток и занятости модератора.