Страница 1 из 1

как увеличить скорость

Добавлено: 04 авг 2005, 18:45
katy8
У меня есть скрипт (*.vbs), который выполняет sql запросы выводит в Excel результат (в нужном мне виде) в том числе формиатирование ячеек (цвета, границы и т.п.)
Набор данных бывает большим
и пока excel все это дело прорисует - устанешь ждать :(

при больших данных отчет может рисоваться от 5 минут и больше
Задержка происходит на мой взгляд в кэше и затем в прорисовывании данных
Под кэшем я понимаю такое: результат запроса получен, но в Excele данные заполняются частами (через определенный промежуток времени) и уже после у меня идет форматирование ящеек
можно ли как-нибудь ускорить процесс формирования отчета?

Добавлено: 05 авг 2005, 02:21
pashulka
В MS Excel есть возможность отключить обновление экрана :

Код: Выделить всё

Application.ScreenUpdating = False
' Здесь создание отчёта и форматирование ячеек
Application.ScreenUpdating = True
Если в Вашем случае это ничем не поможет, то Вы всегда сможете продолжить эту тему.

Добавлено: 11 авг 2005, 23:09
Naeel Maqsudov
Еще можно сэкономить врямя на самой записи в ячейки.
Нужно не по одному значению записывать а загонять данные в массив (в переменной типа Variant) и присваивать весь массив диапазону ячеек.

Код: Выделить всё

Range(cells(i,j),cells(k,l)).Value=A
То же самое касается и форматирования. Обратитесь за один раз к нескольким ячейкам, которые имеют одинаковый формат и отформатируйте их за 1 раз.

Добавлено: 12 авг 2005, 07:02
katy8
записываю я действительно по одной
а форматирую сразу 1 раз несколько ячеек
-
Я обязательно попробую ваш вариант. Думаю, он мне поможет. Спасибо