Вниз
Скачать: CL | DM;

Вставка формулы суммы в Excel   Найти похожие ветки 

 
Fedia ©   (2004-10-04 08:23) [0]

Уважаемые мастера.
Столкнулся вот с какой проблемой.
Вставляю в таблицу Excel массив данных следующим образом

var
 ArrVar: OLEVariant;

 Excel.WorkBooks[1].WorkSheets[1].Range["A1", "E4"]:=ArrVar;

Один из вставляемых столбцов содержит string переменную с функцией суммы типа "=СУММ(K4:M4)+СУММ(Q4:X4)+СУММ(AC4:AD4)+СУММ(AF4:AH4)+СУММ(AT4:BB4)".
При работе с пакетом MSOffice 2000 все прекрасно работало и результат этой функции нормально отображался в сформированном документе. А вот после перехода на MSOffice XP и 2003 результат стал отображаться вот в таком виде #####.
При этом если в Excel-документе выделить ячейку с функцией, установить курсор на строке, отображающем эту функцию и нажать Enter, то результат функции начинает нормально отображаться (т.е. ошибки в формуле нет). Думается мне, что у Excel-документа должна быть какая-нибудь функция типа Refresh, после которой все начнет отображаться, хотя могу и ошибаться.
Может быть, кто-нибудь сталкивался с этой проблемой и нашел ее решение? В общем, очень нужен совет.


 
SergP.   (2004-10-05 09:03) [1]

Странно что у тебя в MSOffice 2000 все работало. Например у меня MSOffice 2000 не хотел понимать такие формулы типа =СУММ(K4:M4)+ и т.п.

Попробуй вставить вместо этого:
"=СУММ(K4:M4)+СУММ(Q4:X4)+СУММ(AC4:AD4)+СУММ(AF4:AH4)+СУММ(AT4:BB4)"

что-то типа вот этого:
"=SUM(R[-5]C[5]:R[-5]C[7])+SUM(R[-5]C[11]:R[-5]C[18])+SUM(R[-5]C[23]:R[-5]C[24])+SUM(R[-5]C[26]:R[-5]C[28])+SUM(R[-5]C[4 0]:R[-5]C[48])"

цифры в квадратных скобках относительные (относительно той ячейки куда формула вставляется), это на примере вставки формулы в ячейку F9

А лучше всего включи запись макроса, впиши куда нужно свою формулу, а потом посмотри какой вид она будет иметь в макросе... Так же делай и в Delphi


 
Fedia ©   (2004-10-05 10:40) [2]

Ага, я так и сделал. Посмотрел, какая формула получается в макросе, и сделал также у себя. Раньше не использовал формулу из макроса, т.к. меня смущал способ присвоения:
...FormulaR1C1:="=SUM(RC[2]:RC[4])";
Т.е. работа не просто с ячейкой, а ее свойством.
Сейчас же "скрипя зубами", из-за увеличения времени формирования документа, организовал цикл, в котором у каждой ячейки менял значение ее свойство FormulaR1C1. А вот попробовать вставить это значение в массив и перенести все данные целиком, не догадался. Завтра попробую.
За совет спасибо.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.026 c
1-1096958807
СержК
2004-10-05 10:46
2004.10.17
Номера цветов


1-1096362766
Drobu
2004-09-28 13:12
2004.10.17
Как отключить Debugger?


1-1096962670
Мирон
2004-10-05 11:51
2004.10.17
не работает Timer в отдельном потоке


1-1096532410
slart
2004-09-30 12:20
2004.10.17
Drag&drop


14-1096101166
Lenor
2004-09-25 12:32
2004.10.17
как узнать, кем...




   Наверх