VBA uygulamalarınız boyunca, belirli bir aralık veya hücre değiştiğinde makro çalıştırmanız gerekir. Bu durumda, bir hedef aralıkta değişiklik yapıldığında makroları çalıştırmak için change olayını kullanırız. VBA'daki olaylar, belirli bir olay meydana geldiğinde makroları çalıştırmamızı sağlar.
Sözdizimi VBA Aralık Değişikliği Olayı
Private Sub Worksheet_Change(ByVal Target As Range) Eğer Kesişmiyorsa(Target, Range("your_range")) Hiçbir Şey Değil O zaman your_macro'nuzu çağırın End If End Sub
Etkinlik modüllerde çalışmaz. Bunları nesnelere (çalışma sayfası, çizelgeler, çalışma kitabı) yazmanız gerekir.
Belirli bir aralıkta bir değişiklik yapıldığında bir makronun nasıl çalıştırılacağını öğrenmek için bir örneğimiz var.
Örnek: A2:A100 aralığında bir değişiklik yapıldığında bir VBA Makrosu çalıştırın
İlk olarak olayın gerçekleşeceği sayfayı seçiyoruz. VBA düzenleyicide bu sayfaya çift tıklayın ve aşağıdaki kodu veya yukarıdaki genel kodu kopyalayın ve ihtiyacınıza göre değişiklik yapın.
Bu örnekte, 2. sayfadaki A2: A100 aralığında bir değişiklik yapıldığında bir makro/VBA kodu çalıştırmak istiyorum. Bunun için proje gezgininde sayfa2'ye çift tıklıyorum. Bu sayfa için kodlama sayfasını açar. Aynısını yapmak için sayfaya sağ tıklayıp görünüm koduna tıklayabilirsiniz.
change olayını kullanmam gerekiyor. Bunun için varsayılan alt yordamı Worksheet_Change(ByVal Target As Range) kullanıyoruz. Belirtilen bir değişiklik yapıldığında tetiklenir. Yani kodumuz şudur:
Private Sub Worksheet_Change(ByVal Target As Range) Eğer Kesişmiyorsa(Target, Range("A2:A100")) Hiçbir Şey Değil O zaman TestEvent'i çağırın End If End Sub
Sayfa2'de A2:A100 aralığında herhangi bir değişiklik yaptığınızda, yukarıdaki gif'te görebileceğiniz gibi TestEvent altyordamı çağrılır.
TestEvent, modül2'deki genel alt programdır. Sadece Etkinliğin çalıştığına dair bir mesaj açılır.
Sub TestEvent() MsgBox "Etkinlik çalışıyor!" Alt Bitiş
O nasıl çalışır?
Bir şart koyduk:
Kesişmiyorsa(Hedef, Aralık("A2:A100")) O Zaman Hiçbir Şey Değildir
Burada Intersect(Target, Range("A2:A100")) Is Nothing, Aralık A2:A100'de herhangi bir değişiklik yapılmazsa True döndürür. Bu ifadenin önüne "Intersect(Target, Range("A2:A100"))" tarafından verilen çıktıyı tersine çeviren bir Not operatörü koyduk. Bu nedenle, A2:A100 aralığında herhangi bir değişiklik yapılmazsa, ifade Falls döndürür ve TestEvent alt çağrıyı almaz. A2:A100 aralığındaki herhangi bir hücrede değişiklik yaparsanız, ifade True değerini döndürür ve olay gerçekleşir. Ve burada olan da bu.
Not: Bu bloğa herhangi bir alt programı koyabilirsiniz. Herhangi bir modülden olabilir. Ancak bu, genel bir alt program olmalıdır. Aralığı istediğiniz ölçüde ayarlayabilirsiniz. Tüm sayfa sınırdır.
Evet arkadaşlar, belirli bir aralıkta bir değişiklik yapıldığında bu şekilde bir alt yordamı çağırabilir veya bir makro/VBA kodu çalıştırabilirsiniz. Temel bir olay örneğiydi. Bu olay, yalnızca değişiklik metin tabanlı olduğunda tetiklenir. Metin tabanlı derken, hücrelere herhangi bir şey yazarsanız veya silerseniz olay tetiklenir. Hücrelerin biçimlendirmesini değiştirirseniz, tetiklenmez. Bunu yapmak için başka yöntemler de var.
Umarım yardımcı olmuştur. Bu VBA konusuyla veya excel ile ilgili başka bir konuyla ilgili herhangi bir sorunuz varsa, aşağıdaki yorumlar bölümünü bana bildirin. Ve aşağıda belirtilen diğer ilgili ve popüler yayınlarımıza göz atın.
Sayfada Herhangi Bir Değişiklik Yapıldığında Makroyu Çalıştır| Bu nedenle, sayfa her güncellendiğinde makronuzu çalıştırmak için VBA'nın Çalışma Sayfası Olaylarını kullanıyoruz.
Geçerli Satırı ve Sütunu Kullanarak Vurgulamak için En Basit VBA Kodu| Sayfanın geçerli satırını ve sütununu vurgulamak için bu küçük VBA parçacığını kullanın.
Excel VBA'daki Çalışma Sayfası Olayları| Çalışma sayfası olayı, sayfada belirli bir olay meydana geldiğinde makrolarınızın çalışmasını istediğinizde gerçekten kullanışlıdır.
Popüler Makaleler:
Verimliliğinizi Artıracak 50 Excel Kısayolu | Görevinizde daha hızlı olun. Bu 50 kısayol, Excel'de daha da hızlı çalışmanızı sağlayacaktır.
Excel'de DÜŞEYARA İşlevi | Bu, farklı aralıklardan ve sayfalardan değer aramak için kullanılan excel'in en çok kullanılan ve popüler işlevlerinden biridir.
Excel 2016'da EĞERSAY | Bu şaşırtıcı işlevi kullanarak değerleri koşullarla sayın. Belirli bir değeri saymak için verilerinizi filtrelemeniz gerekmez. Gösterge tablonuzu hazırlamak için Countif işlevi gereklidir.
Excel'de SUMIF İşlevi Nasıl Kullanılır | Bu, başka bir gösterge panosu temel işlevidir. Bu, belirli koşullardaki değerleri özetlemenize yardımcı olur.