Jeśli masz funkcję VBA, która przekształca program Microsoft Excel w bestię, która pogrąża się w procesorze CPU, czy możliwe jest oswojenie rzeczy, abyś mógł dalej używać komputera do innych działań, gdy program Excel kończy pracę? Dzisiejszy post z pytaniami SuperUser Q & A przychodzi na ratunek, aby pomóc sfrustrowanemu czytelnikowi odzyskać kontrolę nad Excelem.
Dzisiejsza sesja pytań i odpowiedzi przychodzi do nas dzięki uprzejmości SuperUser - poddziału Stack Exchange, społecznościowego forum z pytaniami i odpowiedziami.
Obcy wojownik clip art dzięki uprzejmości Clker.com.
Uczenie się czytnika SuperUserAsIGo chce wiedzieć, czy istnieje sposób ograniczenia wykorzystania procesora Microsoft Excel podczas uruchamiania skryptu VBA na jego komputerze:
Czy istnieje sposób ograniczenia użycia procesora Microsoft Excel, gdy jest on uruchomiony? Mam skrypt VBA, który oblicza dużą liczbę gigantycznych formuł tablicowych. Cały zestaw obliczeń trwa około 20 minut i wykorzystuje 100 procent mojego procesora. W tym czasie nie mogę korzystać z komputera i wolałbym, aby program Excel działał w tle, podczas gdy zużywa on około 50 procent mocy obliczeniowej mojego procesora, aby móc nadal wykonywać inne czynności.
Jakieś sugestie? System operacyjny mojego komputera to Windows 7 Enterprise 64-bit z zainstalowaną na nim 32-bitową wersją programu Excel 2007.
Czy istnieje sposób ograniczenia wykorzystania procesora Microsoft Excel podczas działania funkcji VBA?
SuperUser contrybutor mtone ma dla nas odpowiedź:
Jeśli funkcja VBA jest wywoływana z kilku formuł lub jeśli skrypt generuje lub wymusza ponowną kalkulację kilku formuł, to zdecydowanie powinno korzystać z wielowątkowej funkcji obliczeniowej w programie Microsoft Excel. Odpowiednio, może to uruchomić wiele instancji funkcji VBA dla każdej formuły lub ponownie obliczać wiele komórek jednocześnie, podczas gdy skrypt VBA działa w jednym wątku.
Możesz ograniczyć liczbę wątków używanych przez program Excel do ponownego obliczania formuł, przechodząc do Opcje i wybierając Sekcja zaawansowana, a następnie przewijaj w dół, aż dotrzesz do Formuły podrozdział.
Czy masz coś do dodania do wyjaśnienia? Dźwięk w komentarzach. Chcesz przeczytać więcej odpowiedzi od innych użytkowników Stack Exchange, którzy znają się na technologii? Sprawdź cały wątek dyskusji tutaj.