Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Как приостановить выполнение макроса VBA, чтобы процессор был не занят, VBA макрос как сделать паузу в приложении
 
Цитата
Казанский написал: отключить многопоточные вычисления
В этом макросе не могу, вычисляется многое в ячейках. Уже в дальнейшем буду вычисления в массивы загонять.
Как приостановить выполнение макроса VBA, чтобы процессор был не занят, VBA макрос как сделать паузу в приложении
 
Цитата
Юрий М написал: ...Вы действительно пытаетесь бороться со следствием, а не с причиной ))
Цитата
Sanja написал:...все-таки задумайтесь о его оптимизации
Несомненно при написании следующего макроса я использую Ваши советы, спасибо. Просто этот нет смысла оптимизировать - он вскоре больше не понадобится.
Как приостановить выполнение макроса VBA, чтобы процессор был не занят, VBA макрос как сделать паузу в приложении
 
...А слона-то я и не заметил ))) добавил в цикл DoEvents, проц остывает быстро ! Спасибо большое, такое простое решение оказалось. Также спасибо The_Prist, Вы еще в начале мне советовали DoEvents, я неправильно понял Ваш пост - думал, что для приостановки нужно присутствие пользователя и нажатие  Ctrl+Pause. Респект сайту, быстрые ответы.
Как приостановить выполнение макроса VBA, чтобы процессор был не занят, VBA макрос как сделать паузу в приложении
 
Хотя я торможу на ночь глядя...С тем же успехом можно было пустой цикл на 1-2 мин и без WaitMessage заряжать и с тем же эффектом. Буду завтра разбираться с использованием.
Как приостановить выполнение макроса VBA, чтобы процессор был не занят, VBA макрос как сделать паузу в приложении
 
Цитата
Казанский написал: WaitMessage:
Спасибо ! Но помогает, к сожалению, незначительно. При работе моего макроса 4-ядерный процессор загружен таким образом: 1, 3 и 4 ядра где-то между 45-55%, а 2-е ядро на 80-90%. Когда дело доходит до цикла для паузы с использованием WaitMessage, происходит следующее: 1, 3 и 4 ядра отдыхают, загрузка по2-10%, а 2-е ядро продолжает впахивать за всех, загрузка на 90-100%. В результате температура процессора, которую я наблюдал во время работы цикла, снизилась только на 2 градуса за 2 минуты, с 71 до 69. Возможно я неправильно использую эту функцию ? У меня самый простой цикл:
Код
newMinute = Minute(Now())
If newMinute < 58 Then
  While newMinute + 2 > Minute(Now())
      WaitMessage
  Wend
End If
Изменено: Mirage74 - 25.11.2016 11:13:47
Как приостановить выполнение макроса VBA, чтобы процессор был не занят, VBA макрос как сделать паузу в приложении
 
Цитата
The_Prist написал:
Mirage74  написал:
Смотрим постановку вопроса.Ага. Смотрим ответы, которые Вам дают. Один раз ответил - проигнорировали прямой ответ и зацепились за оптимизацию(про которую я, кстати, лишь намекнул как один из вариантов, но не основное решение - "Ну и оптимизация кода тоже никому не мешала". Т.е. это вроде как дополнение и намек). Второй раз ответил - Вы опять игнорируете и продолжаете какие-то решения выпрашивать, не указав чем предложенное в сообщении  #18  не устроило...

Цитата Mirage74  написал:
проблема не в этомВам виднее. Я не спорю. Я отвечаю ровно на то, что Вы пишите. Если Вы пишите, что Цитата Mirage74  написал:
прогами, грузящими сильно процт.е. это читается как: он нагревается во всех программах, которые грузят проц. И это логично. Но верная формулировка-то, наверное, тогда такая должна быть: проц грузится и на других простых программах - просмотр флэш(в чем, кстати), пасьянс косынка и т.д. Но не перекодировщик же видео

Изменено: The_Prist  - 24 Ноя 2016 21:15:02
Прошу прощения, этот пост я действительно почему-то пропустил. Ontime вполне может помочь решить мою проблему. А комп вешает, например, когда жена играет в одноклассниках в какую-то игру, где разные фигурки падают и она их как-то стыкует. А от перекодировщика видео раньше комп не падал, когда был моложе )
Спасибо за реально полезную инфо.
Как приостановить выполнение макроса VBA, чтобы процессор был не занят, VBA макрос как сделать паузу в приложении
 
Цитата
vikttur написал:
- оптимизация кода;
- DoEvents, тогда код можно будет прервать по Ctrl+Pause(Break);
- КАК ПОЛУЧИТЬ ДАННЫЕ ИЗ ЗАКРЫТОЙ КНИГИ?
Вопрос был "как сделать паузу в приложении, ....."
Ни один из перечисленный Вами ответов не был ответом на мой вопрос. Хотя несомненно содержал полезную информацию.
Как приостановить выполнение макроса VBA, чтобы процессор был не занят, VBA макрос как сделать паузу в приложении
 
спасибо за конкретный ответ
Как приостановить выполнение макроса VBA, чтобы процессор был не занят, VBA макрос как сделать паузу в приложении
 
Цитата
The_Prist написал:
Еще раз: не путайте проги, намеренно вешающие проц и макросы, которые это делают только в случае своей неоптимальности.
Еще раз: если бы комп вешался из-за неоптимального макроса, то он не вешался бы из-за других программ, сильно грузящих проц (перекодировка видео, некоторые флэш-игры). А он вешается. И эти проги не вешают НАМЕРЕННО комп. На других работают нормально.  Делаем вывод: 1) хоть макрос и далеко не оптимален, проблема не в этом. Смотрим постановку вопроса.
Изменено: Mirage74 - 24.11.2016 21:08:57
Как приостановить выполнение макроса VBA, чтобы процессор был не занят, VBA макрос как сделать паузу в приложении
 
Цитата
Sanja написал:
Mirage74 , я понимаю что Вас не переубедить, но все-же...
Цитата Mirage74  написал: Проц сильно грузится думаю из-за постоянного открытия-закрытия файлов. КАК ПОЛУЧИТЬ ДАННЫЕ ИЗ ЗАКРЫТОЙ КНИГИ?
Я ценю Ваши ответы, и уже читаю кстати про оптимизацию кода - очень полезная и доступная инфа. Но обращаю внимание: Комп подвисает от перегрева проца не из-за тормознутого макроса, а из-за аппаратного обеспечения. Это происходит и в другими прогами, грузящими сильно проц. Несомненно, я смогу оптимизировать свой код. Это займет время, и не факт, что он успеет выполниться до перегрева проца. Меня устраивает протестированный и работающий сейчас код, пусть и медленный, т.к.за неделю я получу нужные мне результаты его работы, а на оптимизацию затрачу, возможно, больше. Возможно кто-то напишет я так понимаю напрашивающийся ответ ?
"Такой возможности (приостановить работу макроса, чтобы проц не был загружен, на некоторое время) не существует, либо мне об этом неизвестно. "
Вот и все.
Как приостановить выполнение макроса VBA, чтобы процессор был не занят, VBA макрос как сделать паузу в приложении
 
Цитата
vikttur написал:
Вы в полуторку грузите 5 тонн и спрашиваете, почему она не едет...
Ну я вот иногда поражаюсь таким "ответчикам" на форумах. Был задан конкретный вопрос: Существует ли такой-то метод. Подразумеваются варианты ответов: 1) да, такой-то. 2) не существует. А получаешь ответ в стиле: 'ты все неправильно делаешь и делай по-другому'
Как приостановить выполнение макроса VBA, чтобы процессор был не занят, VBA макрос как сделать паузу в приложении
 
Кнопка цитирования не для ответа [МОДЕРАТОР]

Цитата
The_Prist написал: Вот, здесь я выкладывал краткие рекомендации:  Как ускорить и оптимизировать код VBA
Вопрос был есть ли такая функция/метод а Вы мне ссылку даете на курс по оптимизации программирования ) Наверняка кстати полезная, как мне показалась на первый взгляд, обязательно изучу, спасибо
Как приостановить выполнение макроса VBA, чтобы процессор был не занят, VBA макрос как сделать паузу в приложении
 
Смысл в том, чтобы я запустил макрос, и уехал по делам. А он сам себе паузы делает и дальше работает ))
Как приостановить выполнение макроса VBA, чтобы процессор был не занят, VBA макрос как сделать паузу в приложении
 
Проц сильно грузится думаю из-за постоянного открытия-закрытия файлов. Но мой вопрос не в том, почему он грузится и нагревается.
Как приостановить выполнение макроса VBA, чтобы процессор был не занят, VBA макрос как сделать паузу в приложении
 
Цитата
wowick написал:
По мне так надо продуть корпус от пыли. Может быть сменить термопасту, а может быть перейти на жидкостное охлаждение...
Поменял кулер, купил новый, и термопаста естессно. Стал вешаться реже. Похоже проц надо менять и т.д.и т.п. Мой вопрос не в этом - то, что покупка нового компа решит мою проблему я как бы и сам догадываюсь
Изменено: Mirage74 - 24.11.2016 19:48:39
Как приостановить выполнение макроса VBA, чтобы процессор был не занят, VBA макрос как сделать паузу в приложении
 
Дело не в макросе, все там нормально. Комп вешается и от других прог, которые грузят проц - например перекодировщик видео. Кулер не справляется. Да, нужно менять железо - но ведь вопрос не в этом. По существу кто-то может знает ? Нету такой возможности в программе сделать паузу ?
Как приостановить выполнение макроса VBA, чтобы процессор был не занят, VBA макрос как сделать паузу в приложении
 
Приходится разбивать главный цикл и запускать вручную каждые минут 10, делая паузу (за это время проц охлаждается)
Как приостановить выполнение макроса VBA, чтобы процессор был не занят, VBA макрос как сделать паузу в приложении
 
Здравствуйте.
У меня такая проблема: я запуская в Excel макрос, он выполняется долго и мой кулер не справляется с охлаждением. В результате процессор перегревается и комп зависает. Мне нужно в коде вставить в цикле оператор (команду ?), которая приостановит работу макроса на 2 минуты и затем продолжит выполнение дальше. На компе работает только это приложение. Метод 'Application.Wait' не подходит - во время этой паузы процессор не охлаждается (проверено), а значит почему-то не разгружается во время паузы, вызванной 'Application.Wait'.
Страницы: 1
Loading...