2015-12-18 22 views
8

Yani yazdığım VBA kodu, Outlook kapatıldığında önemli ölçüde daha hızlı çalıştığını fark ettim. Bu sporadik bir şey değildir: Outlook ile 10x aynı kodu çalıştırabilirim, bir deneyimi her seferinde her seferinde daha yavaş işlem hızları yavaşlatır, sonra Outlook'u kapatır ve 10x çalıştırır ve her seferinde önemli ölçüde daha yüksek hızlar yaşar. Ayrıca, kod çalışırken, Excel'in "yanıt vermemesine" ek olarak, aynı durumun Outlook için de aynı olduğunu fark ettim. Outlook'un Word tarafından desteklendiğini biliyorum, bu yüzden Word'de kod çalıştırıyor olsaydım benim için mantıklı olurdu. Ancak benim Excel VBA'm hiçbir şekilde Outlook'u ve Word'ü kullanmaz. Bunun nedeni ne olabilir? Excel ve Outlook aynı işlemden bazılarını paylaşıyor mu? Googling'i boşuna denedim.Outlook kapatıldığında Excel VBA neden daha hızlı çalışıyor?

+1

Kod ne yapıyor? Oldukça çok sayıda ofis insanı her zaman Outlook'u açtı. –

+5

Gerçek kodu zamanlamalarla gönderebilirseniz, bazı kişiler büyük ihtimalle sınanacaktır. Bu konuda herhangi bir yorum yapmak zordur. –

+4

Soruşturmadaki 2 kuruşum: kodunuz birkaç alt birimden oluşuyorsa, her makroya girerken ve çıkarken zaman damgası koyabilir ve Outlook açıldığında A sütununda birbiri ardına yazdırabilirsiniz. Sonra, Outlook kapatıldığında, B sütununda da aynısını yaparsınız. Zamanlamanın her yerde biraz arttığını veya özellikle tüm prosedürün çok hassas bir bölümünde olup olmadığını görebileceksiniz. Daha sonra test sonucunu burada paylaşırsanız, çok ilgilenirim :) –

cevap

2

Ayrıca bu sorunu yaşadım.

Hem Outlook hem de Excel, Microsoft Office paketinin bir parçasıdır, bu nedenle gecikmeler, kullanılmakta olan MS suite programları arasında bellek paylaşımına geri döndüğüne inanıyorum.

Bir makroyu çalıştırdığınızda, tüm MS paketi program işlemlerini yavaşlatır (benim deneyimlerimde). Geldiğim tek gerçek çözüm, Word ve Outlook dahil olmak üzere büyük makroları çalıştırmadan önce MS Suite programlarını kapatmaktır. Umarım bu yardımcı olur.

P.S. Lütfen kodunuzu gönderin, hızlandırmanıza yardımcı olabilirim.