VBA IFERROR

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

Эта ошибка чаще всего возникает, когда мы выполняем какую-либо математическую функцию или отображаем любые данные в другом формате. IFERROR обрабатывает много ошибок, некоторые из них:

# ЗНАЧЕНИЕ !, # N / A, # DIV / 0 !, #REF !, #NUM !, #NULL! И #NAME?

Пример № 1

Теперь эта функция IFERROR также может быть реализована в VBA. Теперь, чтобы сравнить результаты из Excel с VBA IFERROR, мы вставим столбец, в котором мы будем применять оператор VBA IFERROR, как показано ниже.

Вы можете скачать этот шаблон VBA IFERROR Excel здесь - Шаблон VBA IFERROR Excel

Для этого мы рассмотрим те же данные и вставим еще один столбец, в котором мы будем выполнять VBA IFERROR. Перейдите в окно VBA и вставьте новый модуль из меню «Вставка», как показано ниже.

Теперь во вновь открытом модуле напишите подкатегорию с любым именем. Здесь мы дали название рабочей функции, как показано ниже.

Код:

 Sub VBA_IfError () End Sub 

Теперь с помощью ActiveCell, мы выберем первую эталонную ячейку, а затем непосредственно использовать ЕСЛИОШИБКА Формула со ссылкой клеток (RC) -2 -1 делится на количество клеток. Это означает, что мы делим ячейку A на ячейку B в первом аргументе. А во втором аргументе напишите любое утверждение, которое мы хотим вместо ошибки. Здесь мы будем использовать то же состояние, которое мы видели выше, то есть «Нет класса продукта».

Код:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Нет класса продукта" ")" End Sub 

Теперь выберите ячейку диапазона, которая будет нашим знаменателем. Здесь мы выбрали ячейку C2.

Код:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Нет класса продукта" ")" Диапазон ("C2"). Выберите End Sub 

Теперь перетащите формулу в ячейки ниже, где нам нужно применить IFERROR, пока таблица не получит значения.

Код:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Нет класса продукта" ")" Диапазон ("C2"). Выбрать Selection.End (xlDown) .Select End Sub 

Теперь перейдем к последней ячейке столбца с помощью команды Range, куда нам нужно перетащить формулу IFERROR. Здесь наш предел заканчивается в ячейке D6.

Код:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Нет класса продукта" ")" Диапазон ("C2"). Выберите Selection.End (xlDown). Выберите диапазон («D6»). Выберите End Sub 

Теперь, чтобы перетащить примененный IFERROR вниз ко всем применимым ячейкам, выберите команду Range от End (или Last) до Up до примененной ячейки формулы командой End (xlUp) под Range .

Код:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Нет класса продукта" ")" Диапазон ("C2"). Выберите Selection.End (xlDown). Выберите диапазон («D6»). Выберите диапазон (Selection, Selection.End (xlUp)). Выберите End Sub 

Поскольку мы делаем Ctrl + D, чтобы перетащить значения ячейки вверх во все выделенные ячейки в Excel, здесь, в VBA, Selection.FillDown используется для заполнения одинаковых значений ячейки вверх во всех выделенных ячейках.

Код:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Нет класса продукта" ")" Диапазон ("C2"). Выберите Selection.End (xlDown). Выберите диапазон («D6»). Выберите диапазон (Selection, Selection.End (xlUp)). Выберите Selection.FillDown End Sub 

Это завершает кодирование VBA IFERROR. Теперь запустите полный код, нажав на кнопку воспроизведения, как показано на скриншоте ниже.

Как мы видим выше, в столбце D, начиная с ячейки 2-6, мы получили наши результаты.

Существует другой формат и способ применения IFERROR в VBA. Для этого мы рассмотрим другой набор данных, как показано ниже. Ниже у нас есть данные о продажах некоторых продуктов в столбце A и качество продаж в столбце B. И нам нужно отобразить эти данные в ячейке F2 со ссылкой на тип продукта Laptop . Теперь данные в первой таблице имеют # N / A в ячейке B3 с количеством проданных ноутбуков, что означает, что в самих исходных данных произошла ошибка. И если мы посмотрим данные из первой таблицы в ячейку F2, мы получим такой же # N / A здесь.

Для этого откройте новый модуль в VBA и напишите «Подкатегория» с именем выполняемой функции.

Код:

 Sub VBA_IfError2 () End Sub 

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

Код:

Теперь выберите FormulaR1C1 из списка, который используется для вставки любой функции Excel.

Теперь используйте ту же формулу, что и в функции Excel в VBA.

Код:

 Sub VBA_IfError2 () ActiveCell.FormulaR1C1 = "= IFERROR (VLOOKUP (RC (-1), R (-1) C (-5): R (3) C (-4), 2, 0), " "Ошибка в Данные "") "End Sub 

Теперь выберите ячейку, в которой нам нужно увидеть результат в Range. Здесь мы выбрали ячейку F3.

Код:

 Sub VBA_IfError2 () ActiveCell.FormulaR1C1 = "= IFERROR (VLOOKUP (RC (-1), R (-1) C (-5): R (3) C (-4), 2, 0), " "Ошибка в Диапазон данных "") "(" B8 "). Выберите End Sub 

Теперь скомпилируйте и запустите полный код, используя клавишу F5 или вручную, и посмотрите результат, как показано ниже.

Как видно на скриншоте выше, выходные данные типа продукта Laptop, из первой таблицы # N / A, содержат текст ошибки « Error In Data », как определено в коде VBA.

Плюсы функции VBA IFERROR

  • Применение функции IFERROR через VBA занимает совсем немного времени.
  • Результат из функции вставки Excel и кодировки VBA IFERROR одинаковы.
  • Мы также можем отформатировать или вставить специальную формулу, чтобы избежать дальнейших проблем.

Минусы функции VBA IFERROR

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

То, что нужно запомнить

  • Мы можем записать макрос и изменить записанное кодирование в соответствии с нашими потребностями.
  • Не забудьте сохранить файл как Macro-Enabled Excel, чтобы мы могли использовать примененный или созданный макрос несколько раз без каких-либо проблем.
  • Убедитесь, что вы не забыли скомпилировать полный код перед завершением командной функции. Таким образом, мы можем избежать или исправить возникшую ошибку.
  • Вы можете применить созданный код в кнопку или вкладку и использовать его одним щелчком мыши. Это самый быстрый способ запуска кода.
  • Лучший способ избежать каких-либо изменений после запуска кода - вставить специальные ячейки, чтобы в ячейке не было формул.

Рекомендуемые статьи

Это было руководство к функции Excel VBA IFERROR. Здесь мы обсудили, как использовать функцию IFERROR в VBA вместе с некоторыми практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи -

  1. Массивы VBA в Excel
  2. Руководство по формату чисел VBA
  3. Путеводитель по VBA Find
  4. Как использовать VBA Do While Loop?

Категория: