Ограничение использования ЦП Excel

есть ли способ ограничить, сколько использование процессора excel имеет доступ к При запуске? У меня есть сценарий VBA, который вычисляет кучу формул гигантского массива. Весь расчет занимает около 20 минут, используя 100% моего процессора, но я не могу использовать свою машину в течение времени, и предпочел бы, чтобы он работал в фоновом режиме на 50% использования процессора, так что я могу продолжать делать другие вещи. Есть предложения?

моя ОС Windows 7 корпоративная 64-разрядная и версия Excel 2007-32 бит

4
задан DavidPostill
19.01.2023 20:42 Количество просмотров материала 2992
Распечатать страницу

9 ответов

Если функция VBA вызывается из нескольких формул или если ваш скрипт генерирует или вызывает пересчет нескольких формул, то это определенно должно использовать многопоточные вычисления особенность Excel. Соответственно, при этом будет выполняться несколько экземпляров функции VBA для каждой формулы или пересчитываться несколько ячеек одновременно, пока сценарий vba выполняется в одном потоке.

вы можете ограничить количество потоков, используемых Excel для пересчета формул в параметрах Excel... закладка Advanced... Раздел формулы.

enter image description here

54
отвечен mtone 2023-01-21 04:30

вместо понижения приоритета попробуйте изменить сходство в Диспетчере задач. Если у вас более 1 процессора, вы можете ограничить количество процессоров, которые будет использовать Excel. Это освободит другие процессоры для работы над другими вещами.

щелкните правой кнопкой мыши Excel на вкладке Процессы и выберите задать сходство. Выберите ЦП, где вы хотите запустить Excel.

27
отвечен B540Glenn 2023-01-21 06:47

вы можете попробовать снизить приоритет процесса excel, найдя открытие диспетчера задач, переключение на вкладку" Детали "или" процессы " (в зависимости от вашей версии Windows), щелкните правой кнопкой мыши на excel.процесс exe, и выбрав более низкий приоритет. Это должно дать больше времени процессора для других процессов.

7
отвечен Slithy Toves 2023-01-21 09:04

в VBA или через объявление доступны функции ожидания и сна. Однако "чрезмерно упрощенное эмпирическое правило" - никогда не использовать Sleep (). (google "" никогда не используйте sleep () "Программирование")

Doc страница приложения.Подождать ( https://msdn.microsoft.com/en-us/library/office/ff822851.aspx ). Обратите внимание, что сон и ожидание заставит Excel перестать отвечать на запросы в течение указанного времени, и это может привести к срезу времени "крушения поезда."

Если ваш расчет включает в себя цикл какого-то рода, то один из способов справиться с этим для вашей конкретной цели (лишиться расчетное время для доступности процессора), чтобы сделать специальную функцию ожидания самостоятельно, что, например петли DoEvents() в течение 1 секунды, а затем возвращается.

функция doevents в основном говорит ваш код/переводчика отказаться от ОС и т. д. Это определенно заставит ваш код занять больше времени. Он также может позволить вам редактировать лист во время расчета, так что ваш пробег может варьироваться. Испытание.

см., например, https://stackoverflow.com/questions/469347/is-there-an-equivalent-to-thread-sleep-in-vba

3
отвечен Yorik 2023-01-21 11:21

аналогичный questins был задан несколько лет назад, который имеет решение: существуют ли решения, которые могут ограничить использование ЦП процессом?

Process Tamer работает для Windows 7. http://www.donationcoder.com/Software/Mouser/proctamer/

2
отвечен Ryan 2023-01-21 13:38

У меня была та же проблема, когда мой ноутбук с 4 ГБ памяти. Как только я получил его повышен до 16 ГБ, проблема остановилась. Еще одно возможное решение.

0
отвечен George Dooling 2023-01-21 15:55

добавьте следующие 2 строки в начало макроса:

'Turn off screen updating

 Application.ScreenUpdating = False

и эти 2 строки в конце:

'Turn screen updating back on

 Application.ScreenUpdating = True

тогда у него будет меньше работы, пока вы делаете что-то еще.

0
отвечен Loppy 2023-01-21 18:12

Если вы используете офис 32bi в 64-битной ОС, вы должны использовать это приложение: http://www.ntcore.com/4gb_patch.php

Это приложение позволит excel или любой другой офис 32bit использовать mo

-2
отвечен diasje 2023-01-21 20:29

используйте OpenOffice или LibreOffice: его скриптовая мощь намного эффективнее, чем MS one, и вы можете буквально "дросселировать" свои вычисления.

EDIT: почему downvote? взгляните на руководство и сами все увидите. Вы можете преобразовать свои вычисления в Java и быть просто замечательно со всей дроссельной мощностью JVM, например.

-5
отвечен Alexey Vesnin 2023-01-21 22:46

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх