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

Dmitry Drozdov ddv на altonika.ru
Пн Июл 19 13:09:03 UTC 2010


Добрый день!

Есть задача, которая может быть решена пользовательской функцией на
Basic в OOo Calc. По смыслу задачи на вход могут подаваться и пустые
значения (логика их обработки описывается в функции). Однако, если в
качестве аргумента (параметра) пользовательской функции Basic передаётся
пустая ячейка, то OOo Calc подставляет значение 0 (ноль, типа Double).

В приложенном примере ячейка A3 пустая, а B3 в результате выполнения
функции, приведенной ниже, содержит "Double :  0."

Вот тестовая функция, демонстрирующая такое поведение Calc:
Function MyTest(Optional a as Variant) as String
If Not IsMissing(a) Then
	MyTest = TypeName(a) & " :   " & a
Else
	MyTest = "Нет значения"
End If
End Function

Поиск у Питоньяка и в Google, а также вопрос на форуме i-rs.ru разумного
результата не дали. Есть у коллег какие-то решения? Обрабатывать ноль,
как пропущенное значение по условиям задачи нельзя: ноль является в
части случаев вполне допустимым входным параметром. 

Кстати, обратите внимание, как обрабатывается дата; она тоже в функции
преобразуется к Double.

Пример в приложении.

-- 
С уважением,
Дмитрий
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : test.ods
Тип     : application/vnd.oasis.opendocument.spreadsheet
Размер  : 10477 байтов
Описание: отсутствует
Url     : <http://lists.openoffice.ru/pipermail/oo-discuss/attachments/20100719/39d34b8b/attachment-0001.bin>


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