Страница 2 из 3

Добавлено: 16 фев 2009, 10:33
PViP
Алексей, но работаю :grin:

Добавлено: 16 фев 2009, 19:10
Vik
korvanakorvana писал(а): xlSTWriteToMatrix(i,11,'=ЕСЛИ(RC[-2]-RC[-1]-'+string(delta)+'>0;RC[-2]-RC[-1]-'+string(delta)+';0)');
в 2007 почему то не понимает.
А в каком смысле не понимает? Не работает формула в ексель, выводя что-нибудь типа "#ЗНАЧ!" ? Тогда используйте xlSetCellFormula.

Добавлено: 18 фев 2009, 10:55
korvanakorvana
ага пишет типа #имя . Имя ячейки неправильное. Хотя в 2003 вопросы даже такие и не задавались

Добавлено: 18 фев 2009, 11:08
korvanakorvana
xlSetCellFormula() а какие параметры у этой функции . Где можно вообще обо всех этих функциях почитать. пришлите пожалуйста на почту korvana@yandex.ru

Добавлено: 18 фев 2009, 11:08
m0p3e
Если в ячейке F2-Enter, то формула работает? Что физически ложится в ячейку? Если написать простуйшую формулу (типа =A1+A2) то считает? Если не использовать русифицированные названия функций?

Добавлено: 18 фев 2009, 11:10
Vik
Ну так, как вариант, после вывода матрицы используйте вывод формул с помощью функции xlSetCellFormula в нужные ячейки и будет все нормально. Не знаю как у вас, но у меня и в более ранних версиях офиса, если формула сложнее, чем просто обычное сложение, ее необходимо выводить только xlSetCellFormula, иначе ексель ее не понимает. А о всех функциях и их параметрах можно прочитать прямо здесь, на форуме в разделе "Опыт" :
http://www.tyumbit.ru/gal_forum/viewtopic.php?t=2786

Добавлено: 18 фев 2009, 11:14
korvanakorvana
f2 + enter . не помогает. Физически пишется =СУММ(F4:F125) все вроде правильно. пишешь тоже самое ручками и все работает. В смысле не руссифицированные?

Добавлено: 18 фев 2009, 11:25
korvanakorvana
Function xlSetCellFormula(sFormula : string; RawU : longint; ColL : longint; RawD : longint; ColR : longint) объясните пожалуйста что здесь что? как написать с помощью этой функции формулу?

Добавлено: 18 фев 2009, 11:32
Vik
Ну все как обычно. sFormula - это сама формула, а остальные параметры - диапазон ячеек. В вашем случае после вывода матрицы можно написать что-то типа:

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

xlSetCellFormula('=СУММ(E4:E'+string(i-1)+')',i,5,i,5);
......
......
xlSetCellFormula('=СУММ(H4:H'+string(i-1)+')',i,8,i,8); 

Добавлено: 18 фев 2009, 16:20
korvanakorvana
почему при использовании функции
xlCreateMatrix ( recordsintable(#tDolg)+10, 11 );

функция
xlSetCellFormula('=СУММ(H4:H'+string(i-1)+')',i,11,i,11);
не выводит данные в ячейку.
а если ее убрать то выводит.

Добавлено: 18 фев 2009, 16:25
klimin_a_s
Немного не в тему, но еще один глюк 2007 офиса - Excel 2007 портит даты при импорте DBF. Может кто подскажет как поправить? Апдейты все ставил.

Добавлено: 18 фев 2009, 16:41
m0p3e
korvanakorvana писал(а):f2 + enter . не помогает. Физически пишется =СУММ(F4:F125) все вроде правильно. пишешь тоже самое ручками и все работает. В смысле не руссифицированные?
Отличие должно быть. Какой формат ячейки?
СУММ - это руссифицированная версия названия формулы. Руки бы за это микрософту оторвать. В английском офисе это SUMM. Формулу простейшую =A1+A2 пробовали? Работает?

Добавлено: 18 фев 2009, 16:54
Vik
korvanakorvana писал(а):почему при использовании функции
xlCreateMatrix ( recordsintable(#tDolg)+10, 11 );

функция
xlSetCellFormula('=СУММ(H4:H'+string(i-1)+')',i,11,i,11);
не выводит данные в ячейку.
а если ее убрать то выводит.
Может вы матрицу поверх формул записываете?

Добавлено: 18 фев 2009, 17:14
Vik
m0p3e писал(а): Формулу простейшую =A1+A2 пробовали? Работает?
Я уверен, что работает

Добавлено: 19 фев 2009, 02:57
edward_K
проверте формат ячейки. в текстовом не заработает - только общий или числовой.