Запуск макроса при выполнении условия в таблице Excel

Содержание

Вы можете использовать трюк, чтобы запустить макрос, как только функция ЕСЛИ в вашей электронной таблице Excel выдаст определенный результат.

Макрос должен выполняться в таблице Excel, как только функция таблицы IF возвращает логическое значение. В противном случае текст должен просто отображаться.

Вы решаете эту проблему с помощью пользовательской функции VBA. Вы работаете с процедурой Function вместо процедуры Sub.

Если уже существует макрос, который вы хотите запустить с помощью функции IF, вы можете скопировать код в процедуру Function или вызвать из нее процедуру Sub.

Макрос с именем «Startmacro» используется в качестве примера и вызывает только простое диалоговое окно. Следуй этим шагам:

  1. Сначала запустите редактор VBA. Вы можете сделать это во всех версиях Excel, используя комбинацию клавиш ALT F11.
  2. Выберите команду ВСТАВИТЬ - МОДУЛЬ, чтобы вставить новый лист модуля.

Введите следующие команды VBA:

Открытая функция Startmakro () как строка
Объявление по телефону
Запуск макроса = "Запущен".
Конечная функция
Дополнительный дисплей ()
MsgBox «Макрос запущен»
Конец подписки

Программный код состоит из двух отдельных частей. Первый фрагмент представляет новую табличную функцию STARTMAKRO. Второй фрагмент используется для отображения текста «Макрос запущен».

После ввода команд вызовите команду ЗАКРЫТЬ И ВОЗВРАТ В MICROSOFT EXCEL в меню ФАЙЛ редактора VBA. Это вернет вас к своему столу.

Как включить макрос в функцию ЕСЛИ

Чтобы проверить, правильно ли работает макрос, введите следующую функцию в ячейку A2 таблицы:

= ЕСЛИ (A1 = 1; startmakro (); «Не запущен.»)

Если вы введете число 1 в ячейку A1, макрос будет вызываться вашей пользовательской функцией. Появится окно сообщения, как показано на следующем рисунке:

Затем идет текст «Начато». В камере. Пользовательская функция электронной таблицы вернула этот результат в Excel.

Если ячейка A1 имеет содержимое, отличное от 1, макрос не запускается. В этом случае функция ЕСЛИ устанавливает текст «Не запущен». как результат

Представленный путь - это практика, которую Microsoft не рекомендует. Окна сообщений не должны отображаться в пользовательских функциях.

Нет необходимости разделять два макроса START MACRO и DISPLAY. Вы также можете обойтись без команды CALL в макросе VBA и включить команды для подпрограммы непосредственно в подпрограмму FUNCTION.

Вы поможете развитию сайта, поделившись страницей с друзьями

wave wave wave wave wave