Delphi и TExcelApplication
2408
5
Задача - сформировать лист в Excel в рантайме, заполнив его некоторыми данными, в том числе, формулами.
Вобщем, проблема в следующем.
Заполнение проходит нормально, формулы тоже работают, правда в RC-стиле ссылок, да это не важно. А вот если встречается функция, то Excel изначально ставит недопустимое имя, если на этой ячейке нажать F2-Enter, то все исправляется.
Проблема другая, если явно писать имя функции, например, '=сумм(...)', то в той же английской версии Excel будет перманентная ошибка.

Вопрос, как программно впихать в ячейку '=СУММ(R15C:R[-1]C)', чтоб работало?
Picaro
задай это вопрос здесь быстрее помогут. http://www.sql.ru/forum/actualtopics.aspx?bid=20
У самого не было ниразу такой необходимости (Вставлять формулы).
Picaro
Легко

Excel:=CreateOleObject('Excel.Application');
Excel.workbooks.Add();
w:=Excel.workBooks:1:.worksheets.count;
WorkBook:=Excel.WorkBooks:1:;
Sheet:=WorkBook.WorkSheets:1:;
Sheet.Cells[20,20].formulalocal:='=Сумм(K4:K14)';
Excel.Visible:=True;
programmer1981
Sheet.Cells[20,20].formulalocal:='=Сумм(K4:K14)';
Как выяснилось, вот так правильнее:
...FormulaR1C1 := '=SUM(RC[-4]:RC[-1])'...

Всем спасибо, вопрос исчерпан :agree:
Picaro
Т.е. и в руской и в английской версии офиса, надо писать по англицки и всё будет ок?
да. по крайней мере, с русским Ex2000 работает