Коллекция алгоритмов. Массовое исправление ошибок #ДЕЛ/0!, #Н/Д! и др.

Алексей Шмуйлович

Итак, мы имеем некий большой отчет, в некоторых ячейках которого наблюдаем ошибки #ДЕЛ/0!, #Н/Д!, #ЗНАЧ! и иже с ними.

Как быстро справиться с ситуацией, не стирая формулы в «несчастливых» ячейках, чтобы не нарушать целостность формы?

Я использую для этих целей следующий макрос:

 Sub ОшибкаВНоль()
    Dim cl AsRange
    On Error ResumeNext
    For Each cl In Selection.Cells
        If cl.Errors.Item(xlEvaluateToError).Value = TrueThen
            clfrm = Right(cl.Formula, Len(cl.Formula) - 1)
            cl.FormulaLocal = "=если(еошибка(" & clfrm & ");0;" & clfrm & ")"
        EndIf
    Next
End Sub

Макрос перебирает все ячейки в выделенном диапазоне. Если ячейка содержит ошибку вычисления, ее формула модифицируется с использованием функций рабочего листа ЕСЛИ () и ЕОШИБКА () (об этом приеме много раз писали на форуме). Теперь вместо ошибки в ячейке будет отображаться 0.

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


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=5855