[Oo-discuss] Обработка пустых ячеек в пользовательских функциях Calc

Dmitry Drozdov ddv на altonika.ru
Ср Июл 28 05:49:33 UTC 2010


Добрый день!


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


Суть решения: Проверку на пустоту ячейки делать функцией рабочего листа
ISBLANK, в случае пустой ячейки передавать пустую строку, а в
пользовательской BASIC-функции проводить проверку на пустоту строки.
Что-то типа такого:

Вызов пользовательской функции в ячейке:
  =MYFUNC(IF(ISBLANK(адрес);"";адрес))

А в MYFUNC приблизительно так:
        Function MyFunc (a As Variant) As ....
        If a = "" Then
            Обработка пустого значения
        Else
            Если передано непустое значение
        End If
        End Function


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


Решение не изящное, но работающее и универсальное. Также удалось
объяснить его суть не сильно квалифицированным пользователям :-)

С уважением,
Дмитрий




Подробная информация о списке рассылки Oo-discuss