If-Koubou

Как ограничавате използването на CPU на Microsoft Excel при изпълнение на функциите на VBA?

Как ограничавате използването на CPU на Microsoft Excel при изпълнение на функциите на VBA? (Как да)

Ако имате функция VBA, която превръща Microsoft Excel в звяр, който обработва CPU, възможно ли е да овладеете нещата така, че да можете да продължите да използвате компютъра си за други дейности, докато Excel завършва? Днешната публикация "SuperUser Q & A" идва на помощ, за да помогне на разочарован читател да върне Excel под контрол.

Днешната сесия за въпроси и отговори ни идва с любезното съдействие на SuperUser - подразделение на Stack Exchange - обединяване на уеб сайтове с въпроси и отговори.

Alien войн clip art любезното съдействие на Clker.com.

Въпроса

LearningAsigo четец на суперусър иска да знае дали има начин да се ограничи използването на процесора на Microsoft Excel, докато се изпълнява скрипт за VBA на неговия компютър:

Има ли начин да се ограничи използването на CPU на Microsoft Excel, когато се изпълнява? Имам скрипт за VBA, който изчислява голямо количество гигантски масивни формули. Целият набор от изчисления отнема около двадесет минути, за да завърши и използва 100% от моя процесор. Не мога да използвам компютъра си през това време и бих предпочел Excel да работи "във фонов режим", докато използвам около 50% от капацитета на процесора си, за да мога да продължа да правя други неща.

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

Има ли начин да се ограничи използването на процесора на Microsoft Excel при изпълнение на функциите на VBA?

Отговорът

Сътрудникът на SuperUser mtone има отговора за нас:

Ако функция VBA се извиква от няколко формули или ако вашият скрипт генерира или принуждава преизчисляване на няколко формули, тогава това определено трябва да се използва функцията за изчисляване с много нишки в Microsoft Excel. Съответно, това ще стартира или няколко инстанции на вашата VBA функция за всяка формула, или ще преизчисли множество клетки едновременно, докато вашият скрипт VBA работи на една тема.

Можете да ограничите броя на темите, използвани от Excel, за преизчисляване на формули, като отидете на Настроики и избиране на Разширено разделение, след което превъртайте надолу, докато стигнете до Формули подраздел.

Имате ли нещо, което да добавите към обяснението? Звучи в коментарите. Искате ли да прочетете повече отговори от други потребители на Stack Exchange? Вижте цялата тема на дискусията тук.