Домашняя » как » Как вы ограничиваете использование процессора Microsoft Excel при выполнении функций VBA?

    Как вы ограничиваете использование процессора Microsoft Excel при выполнении функций VBA?

    Если у вас есть функция VBA, которая превращает Microsoft Excel в зверя, жующего процессор, можно ли приручить вещи, чтобы вы могли продолжать использовать компьютер для других действий, пока Excel заканчивает работу? Сегодняшняя статья SuperUser Q & A приходит на помощь, чтобы помочь разочарованному читателю вернуть Excel под контроль.

    Сегодняшняя сессия вопросов и ответов пришла к нам благодаря SuperUser - подразделению Stack Exchange, группе веб-сайтов вопросов и ответов, управляемой сообществом..

    Чужой воин картинки предоставлены Clker.com.

    Вопрос

    Читатель SuperUser learningAsIGo хочет знать, есть ли способ ограничить использование процессора Microsoft Excel при запуске сценария VBA на его компьютере:

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

    Какие-либо предложения? Операционная система моего компьютера - Windows 7 Enterprise 64-bit с установленной на нем 32-битной версией Excel 2007.

    Есть ли способ ограничить использование процессора Microsoft Excel при выполнении функций VBA?

    Ответ

    Участник SuperUser Mtone имеет ответ для нас:

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

    Вы можете ограничить число потоков, используемых Excel для пересчета формул, перейдя в Опции и выбрав Расширенный раздел, затем прокрутите вниз, пока не дойдете до Формулы подсекция.


    Есть что добавить к объяснению? Отключить звук в комментариях. Хотите узнать больше ответов от других технически подкованных пользователей Stack Exchange? Ознакомьтесь с полным обсуждением здесь.