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

Dmitry Drozdov ddv на altonika.ru
Вт Июл 20 04:16:49 UTC 2010


Добрый день!


В Пнд, 19/07/2010 в 23:10 +0400, Yakov Reztsov пишет:
> > Есть задача, которая может быть решена пользовательской функцией на
> > Basic в OOo Calc. По смыслу задачи на вход могут подаваться и пустые
> > значения ............. Однако, если в
> > качестве аргумента пользовательской функции Basic передаётся
> > пустая ячейка, то OOo Calc подставляет значение 0 (ноль, типа Double).
> > 
> http://forumooo.ru/index.php/topic,620.msg4958.html#msg4958
> 
> Похоже нужно обращаться к ячейкам из макроса напрямую, тогда можно
> анализировать три параметра value, string и formula. Оттуда видно
> пустая ячейка или там нулевое значение.

Похожие решения я встречал по мере Googleing и отказался от них. Причина
ниже.


> Код:
> 
> 'Author: Sasa Kelecevic
> 'email: scat на teol.net
> Sub ExampleGetValue
>   Dim oDoc As Object, oSheet As Object, oCell As Object
>   oDoc=ThisComponent
>   oSheet=oDoc.Sheets.getByName("Sheet1")
>   oCell=oSheet.getCellByposition(0,0) 'A1

Функция (процедура) сразу же теряет универсальность, адресуясь к
определенной ячейке определенного листа. Вместе с тем, пользовательская
функция, очевидно, может быть записана в любую ячейку как угодно
названного листа и может в качестве аргументов получать любые ячейки.


>   Rem содержимое ячейки может иметь один из следующих трех типов:
>   Print oCell.getValue()
>   'Print oCell.getString()
>   'Print oCell.getFormula()
> End Sub

А может ли функция получать не значение, а адрес ячейки (возможно, с
именем листа)? Тогда, обозначенная выше проблема, похоже решается... 


-- 
С уважением,
Дмитрий Владимирович Дроздов, к.м.н., 
эксперт по медицинским вопросам,
Альтоника,
Москва, 117638, ул. Сивашская, дом 2А,
телефон +7 (495) 797 3070,
факс +7 (495) 795 3051,
skype Dm.Drozdov
ddv на altonika.ru          www.altonika.ru



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