Avustralya'dan Steven yazıyor:
Bir çalışma sayfasından yaklaşık 50 Grafik oluşturması gereken bir VBA makrosu oluşturdum. Sorun şu ki, 33. grafiğe geldiğimde programı her çalıştırdığımda bir hata mesajı "Yeterli bellek yok" görüntüleniyor, ardından Excel programı kilitleniyor ve programı sonlandırmam gerekiyor. Bilgisayarımda 256Meg RAM var ve Excel 97'yi bir Windows NT işletim sisteminde kullanıyorum.
Her grafiği kendi grafik sayfası olarak mı oluşturuyorsunuz? Excel, bir çalışma sayfasındaki 16 milyon hücreyi işleyebilir, ancak sessiz sır, çok fazla çalışma sayfasını işleyememesidir. Yardım dosyası, çalışma sayfalarının sayısının "kullanılabilir hafıza" ile sınırlı olduğunu söylüyor.
Sahip olduğunuz sorunu düzenli olarak yaşıyorum. Korkunç derecede sinir bozucu çünkü ne zaman çökeceğini asla bilemezsiniz. Visual Basic size yakalanabilir bir hata verirse, makroyu durdurabilir, dosyayı kaydedebilir ve yeni bir dosyada başlayabilirsiniz. Ama yapmazlar - sadece bir kaza yaşarsınız.
Çakışmanın 130 çalışma sayfası gibi geç ve 40 gibi erken bir zamanda gerçekleştiğini gördüm. Sisteminizde nerede çökeceğini ölçmeniz ve ardından makroya bir sayaç koymanız gerekir. 32 grafikten sonra çökeceğinizi düşünüyorsanız, işlemi 30 grafikte durdurun, bunları yeni bir çalışma kitabına kaydedin, bu çalışma kitabını kapatın ve bunları yeni bir çalışma kitabında yeniden oluşturmaya başlayın.
Bu hoş değil ama bulduğum tek çözüm bu.
Başka bir düşünce - sağ üst köşedeki "X" işaretini kullanarak Visual Basic Düzenleyicisi'ndeki her modülü ve kullanıcı formunu kapattığınızdan emin olun. Makroyu çalıştırmadan önce Visual Basic'teki tüm bileşenleri kapatarak, biraz daha fazla bellek boşaltabileceğinizi ve muhtemelen "kullanılabilir belleğe" birkaç grafik daha sıkıştırabileceğinizi buldum.
Yukarıda hafızayı korumak için bir şeyler yapmaktan bahsetmiştim. Steven bugün mükemmel bir keşifle şöyle yazdı:
Charts AutoScaleFont'u False olarak ayarlarsam, sorunumu çözen yaklaşık 120 grafik oluşturabileceğimi öğrendim.
Neden bu kadar bir fikrim yok, ama bu Excel. Mükemmel ipucu - bunu hafızayı korumak için belirsiz bir yöntem olarak saklayın.