VBA Hesapla - Şimdi, Çalışma Kitabı, Çalışma Sayfası veya Aralık

Bu eğitim size VBA'daki tüm farklı Hesaplama seçeneklerini öğretecektir.

Varsayılan olarak Excel, her çalışma kitabı değişikliği yapıldığında tüm açık çalışma kitaplarını hesaplar. Bunu, A1 hücresi değiştirilirse, A1 hücresine dayanan tüm hücreleri güncellediği bir hesaplama ağacını izleyerek yapar. Ancak bu, VBA kodunuzun çalışmasına neden olabilir. son derece yavaş, bir hücre her değiştiğinde olduğu gibi, Excel'in yeniden hesaplaması gerekir.

VBA hızınızı artırmak için, genellikle prosedürlerinizin başında otomatik hesaplamaları devre dışı bırakmak isteyeceksiniz:

1 Application.Calculation = xlManual

ve sonunda yeniden etkinleştirin:

1 Uygulama.Hesaplama = xlOtomatik

Ancak, çalışma kitaplarınızın tamamını (veya bir kısmını) prosedürünüz dahilinde hesaplamak isterseniz ne olur? Bu öğreticinin geri kalanı size ne yapacağınızı öğretecektir.

Şimdi Hesapla

Her şeyi yeniden hesaplamak için Hesapla komutunu kullanabilirsiniz (tüm açık çalışma kitaplarında):

1 Hesaplamak

Bu genellikle kullanılacak en iyi yöntemdir. Ancak, daha iyi hız için daha dar hesaplamalar da yapabilirsiniz.

Yalnızca Sayfayı Hesapla

Ayrıca VBA'ya yalnızca belirli bir sayfayı hesaplamasını söyleyebilirsiniz.

Bu kod aktif sayfayı yeniden hesaplayacaktır:

1 ActiveSheet.Hesapla

Bu kod, Sayfa1'i yeniden hesaplayacaktır:

1 Sayfalar("Sayfa1").Hesapla

Aralığı hesapla

Daha dar bir hesaplamaya ihtiyacınız varsa, VBA'ya yalnızca bir hücre aralığını hesaplamasını söyleyebilirsiniz:

1 Sayfalar("Sayfa1").Range("a1:a10").Hesapla

Bireysel Formülü Hesapla

Bu kod yalnızca tek bir hücre formülünü hesaplayacaktır:

1 Aralık("a1").Hesapla

Çalışma Kitabını Hesapla

Yalnızca bir çalışma kitabının tamamını hesaplamak için VBA seçeneği yoktur. Bir çalışma kitabının tamamını hesaplamanız gerekiyorsa, en iyi seçenek Hesapla komutunu kullanmaktır:

1 Hesaplamak

Bu, tüm açık çalışma kitaplarını hesaplayacaktır. Hız konusunda gerçekten endişeleniyorsanız ve bir çalışma kitabının tamamını hesaplamak istiyorsanız, aynı anda hangi çalışma kitaplarının açık olduğu konusunda daha seçici olabilirsiniz.

Hesaplama Çalışma Kitabı - Çalışmayan Yöntemler

VBA'yı yalnızca bir çalışma kitabını hesaplamaya zorlamak için kullanmak isteyebileceğiniz birkaç yöntem vardır, ancak bunların hiçbiri düzgün çalışmayacaktır.

Bu kod, çalışma kitabındaki her bir çalışma sayfasında dolaşacak ve sayfaları birer birer yeniden hesaplayacaktır:

1234567 Alt Yeniden Hesapla_Çalışma Kitabı()Dim ws As Çalışma SayfasıÇalışma Sayfalarında Her ws içinws.HesaplaSonrakiAlt Bitiş

Bu kod, tüm çalışma sayfalarınız "bağımsız" ise, yani sayfalarınızın hiçbiri diğer sayfalara atıfta bulunan hesaplamalar içermiyorsa iyi çalışır.

Ancak, çalışma sayfalarınız başka sayfalara atıfta bulunuyorsa, hesaplamalarınız doğru şekilde güncellenmeyebilir. Örneğin, Sayfa1'i Sayfa2'den önce hesaplarsanız, ancak Sayfa1'in formülleri Sayfa2'de yapılan hesaplamalara dayanıyorsa, formülleriniz en güncel değerleri içermeyecektir.

Ayrıca tüm sayfaları aynı anda seçip etkin sayfayı hesaplamayı da deneyebilirsiniz:

12 ThisWorkbook.Sheets.SelectActiveSheet.Hesapla

Ancak, bu aynı soruna neden olacaktır.

wave wave wave wave wave