Вниз
Скачать: 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
4-1095353519
RaPToR_1
2004-09-16 20:51
2004.10.17
блокировка


8-1090497126
Snip
2004-07-22 15:52
2004.10.17
Thumbnails и TListView


1-1096872451
Turbid
2004-10-04 10:47
2004.10.17
Как узнать Sender


3-1095837110
Iren
2004-09-22 11:11
2004.10.17
Доменная аутентификация


1-1096787566
Roobee
2004-10-03 11:12
2004.10.17
Снова Excel и Delphi - plugin для Excel




   Наверх