[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