0
Ноя 16
Коллеги, кто-нибудь сталкивался с проблемой медленной работы макросов в Excel 2016 (32 бита) под Win 10?
Обновился с Win 7 / Excel 2010 и макрос стал существенно медленнее работать, кроме того не может выполнить некоторые операции.
В сети многие жалуются, но толком решения нет...
Опубликовано
10 Ноя 2016
Активность
6
ответов
5137
просмотров
5
участников
0
Рейтинг
Контекст
VBA x5
Есть такая проблема.
64 ставь в обязаловку и попробуй как-нибудь макрос упростить. А какая машина?
Да машина та же, что раньше была, когда марос работал нормально... 64 бита не получится пока, надо вызывать 32 битную библиотеку. Упрощать, как не парадоксально, сложнее... Отлаженный и работающий макрос превратился в хлам...
Суть то проблемы в том, что казалось бы установившиеся вещи, с обновлением становятся хуже... Хотя в этом и вся суть Майкрософта... И проблему замыкают на пользователя. Упростите макрос, перезапустите компьютер...
Не понятно, где копать... Есть подозрение, что 10ка что-то тормозит в обмене данными...
А что макрос делает?
У меня была одна общая проблема с "медленным макросом". Самая медленная часть это запись данных в файл Excel.
Если в алгоритме запись по одной ячейке в какие-нибудь таблицы, то это в разы медленнее чем запись переменной массива (array) в регион книги. То есть из всех циклов нужно убрать запись, а добавлять данные в массив и один раз записывать в книгу.
Насчет записи в книгу - известная тема, и это было всегда и везде во всех версиях виндоус и excel. Это азы программирования - 100 раз посчитай, один раз запиши. И чем медленнее структура I/O данной машины, тем медленнее работа связанных скриптов. Но, если изменений в скрипте по сравнению со старыми виндами не было, то скорее всего проблема не в скрипте, а в доступе к каким то библиотекам (окружению). Сам с таким не сталкивался, ибо сижу на семерке и в ус не дую. Надо спрашивать яндекс, обычно там люди уже знают.
Как стандартно в программировании делается отладка? Попробуйте локализовать баг. Либо это общесистемный тормоз (именно тот, что вы грешите на винду), либо у вас проблема с конкретной инструкцией. Первое проверяется написанием простенького скрипта с набором инструкций, применяемых в основном скрипте. Второе - поочередным выключением блоков программы и оценкой производительности. Если какие то функции просто не работают - скорее всего они и тормозят весь скрипт и надо напрямую вопрошать на яндексе почему такая функция и не работает в вин10.
У меня после установки win10 и excel 2010 он стал подвисать даже без всяких макросов. Особенно после того как excel в idle, потом переходишь на сраницу пишешь формулу, enter и он зависает на пару секунд, файлы тоже медленно иногда открывает. Я пока не разбирался что к чему.
Спасибо за комменты. Да, с записью ясно. Макрос пишет диапазонами, не по ячейкам.
Грешу на винду потому, что ставил Excel 2010, правда в параллель с 2016. Та же проблема... На других машинах с Win 10, тоже не идет.