Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.08;
Скачать: CL | DM;

Вниз

Отчет в Excel   Найти похожие ветки 

 
ян   (2006-09-22 13:17) [0]

Всем Добрый день!
Ситуация такая, делаю отчет в Excel, есть готовый шаблон,
к ячейкам доступ получаю так
E.Application.Cells(15,1) := "s";
проблема в том что в каждую ячейку запись происходит примерно
за секунду!!!
но шаблон довольно сложный!!
есть ли какой способ ускорить эту процедуру?


 
Сергей М. ©   (2006-09-22 13:20) [1]

Есть.

var
MyVar: Variant;

...

MyVar := VarArrayOf(...); //или VarArrayCreate(..)

E.Application.Range[..].Value := MyVar


 
ян   (2006-09-22 13:27) [2]

MyVar := VarArrayOf(...); //или VarArrayCreate(..)

А что в скобках должно быть?:)


 
alex_*** ©   (2006-09-22 13:42) [3]

код для создания 2 мерного массива


 
Сергей М. ©   (2006-09-22 14:14) [4]


> alex_*** ©   (22.09.06 13:42) [3]


VarArrayOf(...) создает одномерный массив, в отличие от VarArrayCreate(..), которая создает массив произвольной размерности.

Выбор той или иной ф-ции зависит от конкретной задачи, требующей конкретной размерности массива ячеек.


 
ян   (2006-09-22 16:01) [5]

Как я понял надо написать такой код:

 MyVar := VarArrayCreate([0,165],varVariant);//
 for n:=0 to 165 do
   begin
     MyVar[n] := VarArrayOf([" ",30,TRue]);
   end;
 E.Application.Range["A1:DA30"].Value := MyVar;

165 на 30 это насколько я поня размер области в Excel...

Так?

Все равно быстрее не работает...


 
Сергей М. ©   (2006-09-22 16:04) [6]


> 165 на 30


Ну и где ты обозначил именно такую размерность ?


 
ян   (2006-09-22 16:12) [7]

166 на 30

MyVar := VarArrayCreate([0,165],varVariant);
for n:=0 to 165 do
  begin
    MyVar[n] := VarArrayOf([" ",30,TRue]);
  end;

MyVar - массив из 166 элементов,
каждые элемент которого - массив из 30 элементов...только тип не понятно
как определить
Не так?


 
Сергей М. ©   (2006-09-22 16:28) [8]


> каждые элемент которого - массив из 30 элементов


Где ты это обозначил ?

MyVar := VarArrayCreate([0,164, 0, 29],varVariant);

В этом примере создается двумерный массив вариантов размерностью 165 х 30.

Сравни со своим кодом и сделай выводы ...


 
ян   (2006-09-22 17:26) [9]

Так, двумерный массив я объявлять научился!
Идея состоит в том, чтобы данные записать вначале в массив, а потом
уже из массыва в Excel?

так лучше получается:))
но в шаблоне пропадают много(именно не все, а много) ячеек с текстом!
т. е. можно ли перед запуском программы выгрузить все значения
из шаблона в массив, сделать изменения, а потом уже обратно?



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

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

Наверх




Память: 0.48 MB
Время: 0.057 c
2-1158355786
Strate
2006-09-16 01:29
2006.10.08
Функция, возвращающая путь к экзешнику


8-1141039800
Новенький
2006-02-27 14:30
2006.10.08
Audio Capture


15-1157984994
Alx_
2006-09-11 18:29
2006.10.08
"Потрепаться" перестала загружаться в Magic Forum(1.2)


2-1157887069
Чудик
2006-09-10 15:17
2006.10.08
Работа с приводом


2-1158663211
Уч
2006-09-19 14:53
2006.10.08
При сохранении изменяются значения Float-полей