|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
06.11.2010, 02:49 | #1 |
Форумчанин
Регистрация: 17.07.2009
Сообщений: 519
|
Проблема сохранения больших массивов на лист
Мне нужно обработать данные в ранге из примерно 60000 ячеек.
Я читаю их в массив обрабатываю и сохраняю обратно Код:
Cкорость чтения в массив и обработки: 1-2 секунды - устраивает. Но при сохранении на лист возникает следующий глюк: Форма с которой запускается этот код на какое то время становится белой и/или исчезает с экрана. В её заголовке на доли секунды появляется сообщение Приложение не отвечает. Затем, форма несколько раз перерисовывается со сдвигом. И в конце концов отрисовывается правильно. Клиент сильно нервничает от этих визуальных эффектов. Перед приведённым фрагментом выполняется код Код:
10000 - всё нормально Я выкрутился обработкой в цикле чтение/запись по 10000 строк. Есть ли другие идеи ? Сменить версию Excel или использовать БД не могу по условиям клиента. OS Windows 7, 4Gb RAM, CPU Intel Core2DUO E8400 @ 3.0 Ghz |
06.11.2010, 03:04 | #2 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Я бы попробовал перед записью массива на лист:
1) включить обновление экрана application.ScreenUpdating = true или 2) временно скрыть Excel ( application.visible = false) Кроме того: 3) поискать проблему в своём файле (для проверки удалив из файла всё лишнее, особенно условное форматирование) 4) протестировать код на других компах с Excel2003 Я для проверки сделал пример - при проверке описанный вами эффект не наблюдается (вы обрабатываете только один столбец - 60000 ячеек, или несколько столбцов - 60000*N ячеек?) Цитата:
Такой проблемы не встречал. (WinXP_32bit, Excel2003) |
|
06.11.2010, 03:43 | #3 |
Форумчанин
Регистрация: 17.07.2009
Сообщений: 519
|
Спасибо, Игорь.
На Вашем файле эффект не проявляется. Но мой размером ~180Mb Обрабатываю я один столбец. Условного форматирования нет. Помимо обрабатываемого в файле ещё 5 столбцов с данными. Эффект воспроизводим на разных компах/OS. По всей видимости эффект проявляется только на больших файлах. В итоге: Помогло указание Application.Visible = False Ещё раз - большое спасибо. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Копирование строк таблицы по условию одной ячейки из Лист 1 в Лист 2 | Людвиг | Microsoft Office Excel | 5 | 25.10.2014 11:46 |
Проблема загрузки/сохранения StingList в файл | Dj_SheLL | Общие вопросы Delphi | 7 | 26.04.2010 14:46 |
Проблема с загрузкой больших файлов на сервер. | Air | PHP | 6 | 03.02.2010 19:50 |
Проблема отрисовки больших графиков | call_me_Frank | Компоненты Delphi | 5 | 30.11.2009 10:23 |
Проблема такова: язык:Delphi7; сохранения файла; загрузка файла в String Grid | lightdevil | Общие вопросы Delphi | 3 | 06.03.2009 23:10 |