Создание макроса для запуска функции ВПР (Microsoft Excel)
Майк регулярно использует ВПР в своих таблицах, но задается вопросом, есть ли способ заставить функцию запускать макрос, если она не может вернуть значение.
Есть несколько способов решить эту проблему. Во-первых, вы можете использовать условную формулу, чтобы определить, вернет ли функция ВПР значение или ошибку. Если он вернет ошибку, вы можете заставить формулу запускать пользовательскую функцию (MyUDF), как показано здесь:
=IF(ISERROR(VLOOKUP(B2,CODES,1,FALSE)),MyUDF(), VLOOKUP(B2,CODES,1,FALSE))
Все, что вам нужно сделать, это убедиться, что вы поместили свой фактический код VLOOKUP в формулу (дважды) и заменили MyUDF на имя определяемой пользователем функции, которую вы хотите запустить.
Другой подход — настроить обработчик событий для события Calculate.
Это может быть довольно просто, например:
Private Sub Worksheet_Calculate() If IsError(Range("A1")) Then Call Macro1 End Sub
В этом примере предполагается, что формула ВПР находится в ячейке A1 и вы хотите запустить макрос с именем Macro1, если функция ВПР возвращает ошибку. Тогда ваш макрос сможет делать все, что вам нужно. Также помните, что обработчик события Calculate должен быть помещен в объект ThisWorksheet.
Вы также можете сделать обработчик событий Calculate более надежным, как показано здесь:
Private Sub Worksheet_Calculate() On Error GoTo myMac Worksheets(1).Select If Range("A1").Value Then Exit Sub End If myMac: Macro1 'macro to run if VLOOKUP fails End Sub
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (10107) относится к Microsoft Excel 2007 и 2010. Вы можете найти версию этого совета для более старого интерфейса меню Excel здесь:
link: / excel-Making_VLOOKUP_Trigger_a_Macro [Создание запуска макроса VLOOKUP]
.