Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.17;
Скачать: 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 вся ветка

Текущий архив: 2004.10.17;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.042 c
6-1091441323
Дмитрий Ботвин
2004-08-02 14:08
2004.10.17
UDP cканер сети


14-1096492002
GanibalLector
2004-09-30 01:06
2004.10.17
Шахтер порвали...


9-1087359964
AndruhaO
2004-06-16 08:26
2004.10.17
Видеорежим


1-1096562591
debuger
2004-09-30 20:43
2004.10.17
Canvas.Pixels быстрее?


1-1096535034
BorH
2004-09-30 13:03
2004.10.17
Конвертация String[4] в Integer