Excel: Break on Error не работает в пользовательской функции

Похоже, что когда код VBA вызывается из формулы ячейки (например, «Пользовательская функция» или UDF), обычный VBA Break On Error не работает. т работать.

Единственное место, где я могу найти документальное подтверждение этого поведения, - это пара строк в статье под названием «Разработка пользовательских функций для Excel 2007 и служб Excel» :

Обработка ошибок возвращает ошибки #VALUE . Все исключения, вызванные кодом UDF, возвращаются в рабочий лист Excel как ошибки #VALUE.

Даже если для параметра «Перехват ошибок» установлено «Прерывание всех ошибок» и выполняется пошаговое выполнение кода **, вы никогда не увидите команду «Выполнение VBA». -time Диалог ошибки - Excel просто незаметно прекращает выполнение, не сообщая вам, что пошло не так. Конечно, это усложняет отладку, чем она должна быть.

Есть несколько потенциальных обходных путей, связанных с On Error , но я бы не стал загромождать свой код только для того, чтобы выяснить, где возникла ошибка.

Есть ли какой-нибудь параметр Excel / VBA, который я упустил из виду, благодаря которому прерывание при ошибке работает нормально? Я использую Excel 2003.

** Единственный способ войти в отладчик при вызове из ячейки - это установить точку останова или использовать оператор Stop

6
задан Community 9 July 2018 в 18:41
поделиться