korvanakorvana писал(а):
xlSTWriteToMatrix(i,11,'=ЕСЛИ(RC[-2]-RC[-1]-'+string(delta)+'>0;RC[-2]-RC[-1]-'+string(delta)+';0)');
в 2007 почему то не понимает.
А в каком смысле не понимает? Не работает формула в ексель, выводя что-нибудь типа "#ЗНАЧ!" ? Тогда используйте xlSetCellFormula.
Если в ячейке F2-Enter, то формула работает? Что физически ложится в ячейку? Если написать простуйшую формулу (типа =A1+A2) то считает? Если не использовать русифицированные названия функций?
Ну так, как вариант, после вывода матрицы используйте вывод формул с помощью функции xlSetCellFormula в нужные ячейки и будет все нормально. Не знаю как у вас, но у меня и в более ранних версиях офиса, если формула сложнее, чем просто обычное сложение, ее необходимо выводить только xlSetCellFormula, иначе ексель ее не понимает. А о всех функциях и их параметрах можно прочитать прямо здесь, на форуме в разделе "Опыт" : http://www.tyumbit.ru/gal_forum/viewtopic.php?t=2786
f2 + enter . не помогает. Физически пишется =СУММ(F4:F125) все вроде правильно. пишешь тоже самое ручками и все работает. В смысле не руссифицированные?
Function xlSetCellFormula(sFormula : string; RawU : longint; ColL : longint; RawD : longint; ColR : longint) объясните пожалуйста что здесь что? как написать с помощью этой функции формулу?
Ну все как обычно. sFormula - это сама формула, а остальные параметры - диапазон ячеек. В вашем случае после вывода матрицы можно написать что-то типа:
korvanakorvana писал(а):f2 + enter . не помогает. Физически пишется =СУММ(F4:F125) все вроде правильно. пишешь тоже самое ручками и все работает. В смысле не руссифицированные?
Отличие должно быть. Какой формат ячейки?
СУММ - это руссифицированная версия названия формулы. Руки бы за это микрософту оторвать. В английском офисе это SUMM. Формулу простейшую =A1+A2 пробовали? Работает?