-
В этом компоненте есть код
for i := 1 to RowCount do for j := 1 to Root.ColCount do Formulas[i, j] := FBuff[j, i]; IRange.Value := Formulas;
В последней строке возникает ошибка, если в элементе массива FBuff[j, i] присутствует строка длинной 1000 символов. Как исправить?
-
Нихрена себе формула в 1000 символов)
И, кстати, если вставляешь формулы, а не значения, то почему не
IRange.FormulaLocal := Formulas
?
-
Пробовал не помогло. Всё равно валит ошибку
raised exception class EOleException with message 'OLE error 800A03EC'.
-
> Priest (24.08.09 15:00) [2]
Выше штанов не прыгнуть)
Excel 7.0 имеет ограничение на длину текста формулы в ячейке - не более 1000 символов.
В Excel 2007 это ограничение увеличено до 8000 символов
-
И все же любопытно - что это за формулы такой чудовищной длины ?)
-
У меня Эксел 2003. А там не формулы. А значения из полей БД. НО тот код, что я привёл это взят из библиотеки XLReport.
-
> не формулы. А значения
Тогда, во избежание недоразумений, и обзывать следовало по-другому:
for i := 1 to RowCount do for j := 1 to Root.ColCount do Values[i, j] := FBuff[j, i]; IRange.Value := Values;
> У меня Эксел 2003
А ограничение увеличено начиная c 2007.
-
Переписал код так for i := 1 to RowCount do for j := 1 to Root.ColCount do IRange.Cells.Item[i, j].Value:=FBuff[j, i];
И закоментарил строчку вида IRange.Value := Formulas; которая и вызывала ошибку. НО теперь валится в другом месте For Row = 1 To R.Rows.Count For col = 1 To R.Columns.Count Set c = R.Cells(Row, col) f = c.FormulaLocal -- Тут валится ошибка
Что мможно сделать?
-
> Тут валится ошибка
Секретная ?
-
нет. не секретная. вызывается отладчик ВизуалБэйсика и говорит, что не поддерживается свойство. А до того как я отредактировал код, всё работало. Т.е. когда в IRange.Value присваивался двумерный масив Formulas то FormulaLocal у ячейки был. а когда я присваиваю все значения так IRange.Cells.Item[i, j].Value:=FBuff[j, i], то FormulaLocal отсутвтует у ячейки
-
> когда присваиваю все значения .. то FormulaLocal отсутвтует у ячейки
Ячейка в каждый момент времени может содержать либо значение, либо формулу, расчитывающую это значение, но не и то и другое одновременно. Чему же удивляться, если во все ячейки диапазона ты записал именно значения, а не формулы, но после этого требуешь выдать именно формылы, которых там и в помине нет ?
-
Вру. Если ты записал в ячейку формулу, то после этого ты вправе требовать от нее как формулу, так и значение, расчитанное по этой формуле.
Если же ты туда записал значение, то после этого ты вправе требовать только значение, но никак не формулу - откуда ей там взяться, если ты ее туда не записывал ?
|