Не могу заставить работать функцию xlGetRangeByName

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Ренат
Постоянный обитатель
Сообщения: 194
Зарегистрирован: 12 сен 2007, 16:34
Откуда: Глазов
Контактная информация:

Не могу заставить работать функцию xlGetRangeByName

Сообщение Ренат »

Доброго времени суток.

Необходимо в шаблон, на лист "list1" вывести данные в поименованную ячейку "YY".

Код: Выделить всё

 if not xlSetActiveSheetByName('list1') { 
           Message('Ошибка структуры шаблона');
           exit;
        };
xlGetRangeByName('YY',c1,r1,c2,r2);
xlSetCellStringValue('ё моё',c1,r1,c2,r2);
       Message('c1='+string(c1)+char(13)+char(10)+
               'r1='+string(r1)+char(13)+char(10)+
               'c2='+string(c2)+char(13)+char(10)+
               'r2='+string(r2)+char(13)+char(10));
Функция xlGetRangeByName возвращает какой то нереальный результат (с1=1239856, r1=0, c2=49153, c2=1881904) . Причем возвращает False. Но данные пишет в эту ячейку и ту что над ней.
Что я делаю неправильно?
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение m0p3e »

Насколько я помню функция с ошибкой. RangeByName и RangeByNameInBook обе работали как InBook. В dll под OO я это правил. Более подробно уже не помню.
Создай excel.log в рабочей папке и посмотри что пишет.
Ренат
Постоянный обитатель
Сообщения: 194
Зарегистрирован: 12 сен 2007, 16:34
Откуда: Глазов
Контактная информация:

Сообщение Ренат »

Вроде ничего и не пишет :-(
Ренат
Постоянный обитатель
Сообщения: 194
Зарегистрирован: 12 сен 2007, 16:34
Откуда: Глазов
Контактная информация:

Сообщение Ренат »

Работает как RangeByNameInBook. Спасибо
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение m0p3e »

Ренат писал(а):Работает как RangeByNameInBook. Спасибо
Вот в том то и дело. А если необходимо использовать область независимо от того на каком листе она находится, то засада.

Может к то в курсе, кто занимается excellib-ой в Галактике? Кому писать?
Ренат
Постоянный обитатель
Сообщения: 194
Зарегистрирован: 12 сен 2007, 16:34
Откуда: Глазов
Контактная информация:

Сообщение Ренат »

У меня вообще не получилось создать область с одним именем на разных листах. Так что думаю достаточно и одной функции
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение m0p3e »

Неа. Недостаточно.
Делал многолистовой отчет, где нужно было просуммировать ячейки с известным именем, но на каком листе они находились было неизвестно. Т.е. нужно было создать формулу
=SUMM('MyRange1';'MyRange2'; и т.д.)
Вот тут и нарвался.
Ренат
Постоянный обитатель
Сообщения: 194
Зарегистрирован: 12 сен 2007, 16:34
Откуда: Глазов
Контактная информация:

Сообщение Ренат »

А я так функцию и вызываю

Код: Выделить всё

xlGetRangeByNameInBook('YY',c1,r1,c2,r2); 
т.е. без указания имени листа. Правда я на нем и нахожусь :grin:
Но в формуле конечно надо указывать полностью, с именем листа.
Ответить