Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Настройка Excel, повышение скорости работы 
:(
    Опции темы
Тиль
Дата 29.5.2008, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 27.2.2006

Репутация: нет
Всего: нет



Есть большой файл.около 100 Мб. Много данных и макросов. При срабатиывании макросов файл начинает висеть по несколько минут. Можно как нибудь ускорить процесс выполнения?В процессе происходит много вычислений. Вопрос очень важный. Компьютер нормальный по параметрам
--------------------
Казалось нам пипец, оказалось что не казалось
PM MAIL   Вверх
Naghual
Дата 29.5.2008, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 7
Всего: 49



Цитата(Тиль @  29.5.2008,  13:08 Найти цитируемый пост)
Много данных и макросов.


Цитата(Тиль @  29.5.2008,  13:08 Найти цитируемый пост)
В процессе происходит много вычислений.



Только оптимизацией Логики.


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
LOPUH
Дата 29.5.2008, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Растение
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 15.2.2008
Где: Красноярск

Репутация: 3
Всего: 4



Цитата(Naghual @  29.5.2008,  13:45 Найти цитируемый пост)
Только оптимизацией Логики. 

Согласен. Если интересует оптимизация кода зайдите сюда

PM MAIL   Вверх
RockClimber
Дата 30.5.2008, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 848
Регистрация: 5.5.2006
Где: планета 013 в тен туре

Репутация: 7
Всего: 15



Цитата(Тиль @  29.5.2008,  13:08 Найти цитируемый пост)
Можно как нибудь ускорить процесс выполнения?

Возможно, стоит отменить автоматическое выполнение некоторых макросов (если такие есть) и выполнять их только по запросу пользователя? Это тоже оптимизация в каком-то роде...


--------------------
Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит.
PM MAIL GTalk   Вверх
FINANSIST
Дата 3.6.2008, 08:39 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Статус: Жив
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 11.4.2008
Где: Москва

Репутация: 13
Всего: 23



Итак , господа, причины может быть 5:
Причина первая.
В файле помимо большого количества макросов есть большое количество формул.
Решение.
При запуске макросов прописываем в коде ручной пересчёт ячеек , при завершениии - соответственно включаем автоматический пересчёт.
Причина вторая.
В файле присутствуют макросы, перехватывающие определённые события. Например событие листов Selection_Change.
Пояснение причины: 
При работе модульного макроса с ячейками после каждой такой операции срабатывает механизм перехвата события макросами листа, они (макросы листа) активизируются  не выполняя своих полезных функций, но занимают системную память и время.
Решение
Прогони пошагово модульный марос через F8, и посмотри , будешь ли ты вылетать в марос листа. Если такое случится хотя бы раз - прописываешь в начале каждого модульного макроса код :
Код

application.enableevents = false
--------------------------------------
application.enableevents = true

Причина третья
Пользователь видит действия, мароса
Пояснение причины
Отображение действий пользователю занимает достаточно много системных ресурсов
Решение
Код

application.screenupdating = false
----------------------------------------
application.screenupdating = true

Причина четвёртая
Необъявлены явно все типы переменных в коде
решение
option explicit
dim ........... as ............
И наконец причина пятая
Код действительно неоптимизирован, то есть выполняет кучу лишних действий
Пояснение причины
Если пользователь был не очень опытный, он мог большинство маросов просто тупо сгенерировать (записать) а не сформировать код вручную. При этом код становится просто избыточным  ( в разы раздутым)
Решение
анализируй пошагово действия, смотри , что происходит и действительно ли данное действие необходимо.



--------------------
“...Брали корову рыжую одну, отдавать будем корову рыжую одну, чтобы не нарушать отчетности”
Эдуард Успенский, “Каникулы в Простоквашино”
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0680 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.