2015-12-18 34 views
8

, więc zauważyłem, że kod VBA napisałem działa znacznie szybciej, gdy program Outlook jest zamknięty. Nie jest to rzecz sporadyczna: mogę uruchamiać ten sam kod 10x w Outlooku, otwierając znacznie wolniejsze przetwarzanie za każdym razem, a następnie zamknij Outlooka i uruchom 10 razy i doświadczaj znacznie szybszych prędkości za każdym razem. Zauważyłem również, że oprócz programu Excel "nie odpowiada" podczas działania kodu, to samo odnosi się do programu Outlook sporadycznie. Wiem, że Outlook jest zasilany przez Worda, więc miałoby to sens, gdybym uruchamiał kod w Word. Jednak mój Excel VBA w żaden sposób nie wykorzystuje Outlook ani Word. Jaka może być tego przyczyna? Czy Excel i Outlook udostępniają część tego samego procesu? Próbowałem Googling bezskutecznie.Dlaczego program Excel VBA działa znacznie szybciej, gdy program Outlook jest zamknięty?

+1

Co robi kod? Sporo osób z biura ma Outlook otwarty przez cały czas. –

+5

Jeśli możesz pisać aktualny kod z timingiem, niektórzy ludzie będą prawdopodobnie testować. bez tego trudno jest wyrazić jakiekolwiek uwagi na ten temat. –

+4

Moje 2 grosze dochodzenia: jeśli twój kod składa się z kilku subsów, możesz umieścić znacznik czasu podczas wchodzenia i wychodzenia z każdego makra i drukować je jeden po drugim w kolumnie A, gdy Outlook jest otwarty. Następnie robisz to samo w kolumnie B, gdy Outlook jest zamknięty. Myślę, że będziesz w stanie zobaczyć, czy czas rozrasta się trochę wszędzie, a dokładnie w bardzo precyzyjnej części całej procedury. Wtedy podzielisz się wynikiem testu tutaj, byłbym bardzo zainteresowany w tym :) –

Odpowiedz

2

Też doświadczyłem tego problemu.

Zarówno program Outlook, jak i program Excel są częścią pakietu Microsoft Office, więc uważam, że opóźnienia sprowadzają się do udostępniania pamięci między programami pakietu MS, gdy są one używane.

Po uruchomieniu makra powoduje spowolnienie wszystkich operacji programu pakietu MS (na moim doświadczeniu). Jedynym prawdziwym rozwiązaniem, które wymyśliłem, jest zamknięcie programów pakietu MS przed uruchomieniem dużych makr, w tym Worda i Outlooka. Mam nadzieję, że to pomoże.

P.S. Proszę napisać swój kod, być może będę w stanie pomóc Ci go przyspieszyć.