Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.10.08;
Скачать: [xml.tar.bz2];

Вниз

Отчет в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.042 c
2-1158439883
Vendor
2006-09-17 00:51
2006.10.08
Case ..... of


15-1158596104
Весь в делах
2006-09-18 20:15
2006.10.08
Вопрос к ...


2-1158987058
Juju
2006-09-23 08:50
2006.10.08
Excel создал, а как убить?


15-1158127245
Rouse_
2006-09-13 10:00
2006.10.08
Интернет входит в правовые рамки.


2-1158774901
KEBZ
2006-09-20 21:55
2006.10.08
Корректный ввод





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский