|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
10.08.2011, 12:43 | #1 |
Новичок
Джуниор
Регистрация: 10.08.2011
Сообщений: 7
|
Медленный макрос
Господа! Подскажите, пожалуйста, начинающему как ускорить выполнение макроса. Работает очень медленно, более 30 минут уходит на его выполнение.
Код:
Последний раз редактировалось Sotrom; 10.08.2011 в 13:31. |
10.08.2011, 12:56 | #2 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Секунда:
Код:
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 10.08.2011 в 13:00. |
10.08.2011, 13:31 | #3 |
Новичок
Джуниор
Регистрация: 10.08.2011
Сообщений: 7
|
-> Hugo121
Спасибо за отклик, но что-то не то с Вашим кодом. Проверил, он делает немного не то, что был у меня |
10.08.2011, 13:33 | #4 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Ну он ячейки не выделяет
А так вроде то-же должен делать. Но это конечно на рабочем файле нужно смотреть, у меня его нет.
webmoney: E265281470651 Z422237915069 R418926282008
|
10.08.2011, 13:42 | #5 |
Форумчанин
Регистрация: 05.07.2011
Сообщений: 208
|
Исправьте
Range("B19").Resize(, 6) = Range(Cells(x, 2), Cells(x, 7)) |
10.08.2011, 13:45 | #6 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Да, точно, спасибо, упустил:
Код:
webmoney: E265281470651 Z422237915069 R418926282008
|
10.08.2011, 13:45 | #7 | |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
а так подходит:
Цитата:
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
|
10.08.2011, 14:48 | #8 |
Новичок
Джуниор
Регистрация: 10.08.2011
Сообщений: 7
|
->Hugo121
Не работает. Все искомые значения, которые запоминаются, получаются одинаковыми. Привожу в двух словах как должно работать. Есть 8 столбцов. Из них 6 первых столбцов это переменные, и еще 2 - это значения которые ищем. Первая строчка (ячейки B19-I19) представляет собой: 1 1 1 1 1 1 25 150 25 и 150 это искомые значения. Далее цикл: Значения случайных числе (которые я заранее сгенерировал) из ячеек В20 - G20 подставляются в ячейки, где сейчас единички (B19 - G19). Искомые значения пересчитываются (завязаны на весь расчетный файл) и их значения из ячеек H19 и I19 копируются в сроку 20, т.е. в H20 и I20. Далее цикл повторяется. Из сроки 21 значения попадают в 19 сроку, а искомые значения из 19 сроки попадают в 21 строку и т.д. 5000 раз. В конце в ячейках B19-G19 подставляются значения с 1, чтобы вернуть файл в исходное состояние. Но это у всех получилось ->IgorGo Ваш код почти работает, но значения периодически смещаются с нужной строчки... Не понимаю почему. Только он не столь компактен как у Hugo121 |
10.08.2011, 15:00 | #9 |
Новичок
Джуниор
Регистрация: 10.08.2011
Сообщений: 7
|
Hugo121 прав, что вероятнее всего макрос тормозит из за всего файла... Там расчет делается по нескольким десяткам тысяч ячеек.
Но очень хочется, чтобы сам код не выполнял функцию "бутылочного горлышка". |
10.08.2011, 16:02 | #10 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Нда, так и есть, без примера код писать...
Первое копирование так идёт, через массив, иначе (и через Resize тоже) не работает: Dim a ... For x = 20 To 5019 a = Range(Cells(x, 2), Cells(x, 7)) [B19:G19] = a Можно было ещё приравнивать ячейки по-одной, благо их немного... Ну а торомоза из-за формул, этот код за секунду отрабатывает.
webmoney: E265281470651 Z422237915069 R418926282008
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Макрос постоянно обрабатывает события. При открытии другой книги макрос обрывается. | Ples | Microsoft Office Excel | 8 | 17.12.2016 18:15 |
Медленный выход приложения (многопоточность) | YarUnderoaker | Общие вопросы Delphi | 1 | 15.10.2010 16:57 |
Exel - при открытии файла через макрос, если файл отсутствует - виснет весь макрос | gregory1b | Microsoft Office Excel | 2 | 14.10.2010 11:51 |
Макрос, запускающий макрос из другого закрытого файла | petruha | Microsoft Office Excel | 7 | 14.03.2010 11:31 |
Макрос вставки файлов в листы-Необходимо изменить ниже приведённый макрос | as-is | Microsoft Office Excel | 4 | 25.02.2010 07:51 |