Otomatik Hesaplamaları Kapatın (veya Açın) - VBA Kodu Örnekleri

Bir hücre değerini her güncelleştirdiğinizde Excel, çalışma kitabını yeniden hesaplamak için bir süreçten geçer. Doğrudan Excel içinde çalışırken, bunun zamanın %99,9'unda olmasını istersiniz (son derece büyük bir çalışma kitabıyla çalışıyorsanız istisna). Ancak bu, VBA kodunuzu gerçekten yavaşlatabilir. Makroların başında hesaplamalarınızı manuel olarak ayarlamak ve makroların sonunda hesaplamaları geri yüklemek iyi bir uygulamadır. Çalışma kitabını yeniden hesaplamanız gerekirse, Excel'e manuel olarak hesaplamasını söyleyebilirsiniz.

Otomatik Hesaplamaları Kapatın

Bir makro ile otomatik hesaplamayı xlmanual olarak ayarlayarak kapatabilirsiniz. Aşağıdaki VBA kodunu kullanın:

1 Application.Calculation = xlManual

Otomatik Hesaplamaları Tekrar Açın

xlAutomatic ayarıyla otomatik hesaplamayı tekrar açmak için:

1 Uygulama.Hesaplama = xlOtomatik

Prosedürünüzün en başında Otomatik hesaplamaları devre dışı bırakmanızı ve sonunda Otomatik Hesaplamaları yeniden etkinleştirmenizi öneririm. Bunun gibi görünecek:

Otomatik Hesaplamalar Makro Örneği Devre Dışı Bırak

12345678 Alt Auto_Calcs_Örnek()Application.Calculation = xlManual'Bir şey yapUygulama.Hesaplama = xlOtomatikAlt Bitiş

Manuel Hesaplama

Otomatik hesaplamalar devre dışı bırakıldığında, Hesaplamak Excel'i yeniden hesaplamaya zorlama komutu:

1 Hesaplamak

Excel'e yalnızca tek bir çalışma sayfasını yeniden hesaplamasını da söyleyebilirsiniz:

1 Çalışma sayfaları("sayfa1").Hesapla

Ayrıca VBA'ya yalnızca bir aralığı yeniden hesaplamasını söyleyebilirsiniz (VBA hesaplama yöntemleri hakkındaki makalemizi okumak için tıklayın)

Bunun bir makronun içinde nasıl görünebileceği aşağıda açıklanmıştır:

12345678910111213 Alt Auto_Calcs_Example_Manual_Calc()Application.Calculation = xlManual'Bir şey yap'Yeniden hesaplaHesaplamak'Daha Fazla Şey YapınUygulama.Hesaplama = xlOtomatikAlt Bitiş

VBA Ayarları - Hızlandırma Kodu

Amacınız kodunuzu hızlandırmaksa, şu diğer ayarları da yapmayı düşünmelisiniz:

Ekran güncellemesini devre dışı bırakmak, hızda büyük bir fark yaratabilir:

1 Application.ScreenUpdating = Yanlış

Durum Çubuğunu kapatmak da küçük bir fark yaratacaktır:

1 Application.DisplayStatusBar = Yanlış

Çalışma kitabınız olaylar içeriyorsa, prosedürlerinizin başlangıcında olayları da devre dışı bırakmalısınız (kodu hızlandırmak ve sonsuz döngüleri önlemek için!):

1 Application.EnableEvents = Yanlış

Son olarak, Excel sayfa sonlarını yeniden hesaplamaya çalıştığında VBA kodunuz yavaşlayabilir (Not: tüm prosedürler etkilenmeyecektir). DisplayPageBreaks'i kapatmak için bu kod satırını kullanın:

1 ActiveSheet.DisplayPageBreaks = Yanlış

Arkadaşlarınızla sayfasını paylaşan sitenin gelişimine yardımcı olacak

wave wave wave wave wave