
Когда я запускал подпрограмму Excel, которая длилась более 30 минут, я заметил в диспетчере задач, что Excel использовал всего от 35 до 55% ресурсов ЦП.
Я считаю, что если бы использование ЦП было каким-то образом увеличено, процесс занял бы меньше времени. Есть ли способ увеличить использование ЦП Excel — или любыми другими приложениями, если на то пошло?
Я использую 64-разрядную версию Office на 64-разрядной версии Windows 10 Pro.
решение1
К сожалению, ответ, который вы ищете, не тот, который вам нужен.
В то время как таблицы Excel обрабатываются в нескольких потоках и могут использовать до 100% ресурсов процессора, макросы Excel выполняются только в одном потоке.
Если большая часть обработки неизбежно выполняется в VBA, код можно модифицировать для повышения производительности.
решение2
У меня была точно такая же проблема, даже когда я НЕ запускал макрос/подпрограмму, и я решил ее. Возможно, у других может быть похожая проблема, и им нужно ее решение. Диспетчер задач показывал, что Excel использует всего около 10% моего ЦП для ОЧЕНЬ большой и ОЧЕНЬ насыщенной формулами таблицы. Когда я ее запустил, на расчет уходило 5 минут (я использую ручной режим расчета). Еще хуже, вставка строки в таблицу заняла несколько часов. Я использую Excel 365 64-бит.
Я сделал две вещи, которые решили ее. Возможно, это был второй шаг ниже (повышение приоритета Excel), который решил ее в одиночку, я не уверен. Этот шаг предложен выше и, похоже, он не решил ее для ускорения обработки макросов для других, поэтому я предполагаю, что он мог не помочь и мне (если бы я сделал это в одиночку). Я прочитал эту ветку в своих попытках решить эту проблему и не пробовал второй шаг отдельно (или первый). Если это не сработало для вас, то попробуйте все шаги ниже. Возможно, это комбинация, которая является тикетом.
Убедитесь, что "Maximum Processor State" установлен на 100% в разделе "Processor Power Management" в разделе "Advanced Settings" в разделе "Power Options" выбранных вами в данный момент настроек "Power Plan". Если вы не видите настройки Processor Power Management в дополнительных настройках вашего плана питания, вам придется добавить их. Инструкции по этому шагу см. по ссылке "Почему у меня отсутствует управление питанием процессора в параметрах питания?": https://answers.microsoft.com/en-us/windows/forum/all/why-am-i-missing-the-processor-power-management/f5e30954-1843-464e-838b-015cc21d3ebd. Мне пришлось сделать это, включая изменение реестра. Примечание: когда я впервые попытался изменить реестр, я не смог добавить атрибуты DWORD, где указано. Поэтому я запустил редактор в режиме администратора (хотя это тоже сначала не сработало... но потом сработало, когда я попробовал снова... Не знаю почему).
Установите высокий приоритет для Excel в диспетчере задач, следуя инструкциям IUnknown, приведенным выше.
Мне не нужно было этого делать, так как Excel уже был настроен на это для меня. Однако вы должны быть уверены, что в ленте Excel "Файл/Параметры/Дополнительно/Формулы/Включить многопоточные вычисления" установлено значение "Использовать все процессоры на этом компьютере". В моем случае это было 16.
Загрузка процессора Excel затем подскочила до 98% в диспетчере задач! Надеюсь, это поможет кому-то с этой проблемой при простом расчете в своей таблице (т. е. проблема не связана с макросами).
решение3
Вы можете установить приоритет процесса для любого приложения, включая Excel. Для этого:
- Открыть диспетчер задач
- Найдите Microsoft Excel в разделе «Приложения».
- Щелкните правой кнопкой мыши, перейдите в раздел «Подробности».
- На вкладке «Сведения» снова щелкните правой кнопкой мыши по Excel.Exe и в появившемся меню установите приоритет «Высокий». (Можно также выбрать «В реальном времени», но это слишком много)