, 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?
8
A
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ć.
Powiązane problemy
- 1. zewnętrzny program zatrzyma się, gdy program Java jest zatrzymany
- 2. Można wysyłać tylko wiadomości e-mail za pośrednictwem programu Outlook, jeśli program Outlook jest otwarty.
- 3. Dlaczego ten program PHP nie działa?
- 4. Jak działa program manage.py?
- 5. Dlaczego program Node.js jest skalowalny?
- 6. Uruchom program Outlook za pomocą C#
- 7. Dlaczego mój program działa tak wolno?
- 8. Dlaczego ten program programu Rust nie działa?
- 9. Dlaczego program testowy Json nie działa?
- 10. Program Excel nie może włączyć referencji/brakujących funkcji
- 11. OPENQUERY działa znacznie szybciej niż kwerendy prosto do tabeli połączonej
- 12. Dlaczego program psycopg2 IntegrityError nie jest przechwytywany?
- 13. Program Outlook ReportItem.Body zwracający niepoprawne kodowanie dla niektórych użytkowników
- 14. Dlaczego C# kompiluje się znacznie szybciej niż C++?
- 15. Dlaczego program Arduino jest nazywany szkicem?
- 16. Dlaczego ten równoważny program nie jest kompilowany?
- 17. Dlaczego program UtteranceProgressListener nie jest interfejsem?
- 18. Program Word VBA uzyskujący błąd Project jest pomijalny
- 19. Program Excel RTD Server Development w C++
- 20. Dlaczego program DebugView nie wyświetla komunikatów debugowania, gdy program Visual Studio wykonuje
- 21. Program Excel 2013 ulega awarii z powodu fragmentacji pamięci.
- 22. excel VBA uruchamia makro automatycznie, gdy komórka zostanie zmieniona
- 23. Jak uzyskać program Outlook do przetwarzania aktualizacji zdarzenia?
- 24. "Nie można znaleźć głównej klasy: XX. Program zostanie zamknięty."
- 25. Excel VBA - WorkbookBeforeSave Event Czy
- 26. Program dropzone.js programowo nie działa
- 27. Dlaczego program InsertHelper był przestarzały?
- 28. jak otworzyć program Outlook na kliknięcie hiperłącza e-mailowego
- 29. Program Excel czeka na kolejną aplikację, aby zakończyć działanie OLE.
- 30. Dlaczego ten program zachować upaść
Co robi kod? Sporo osób z biura ma Outlook otwarty przez cały czas. –
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. –
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 :) –