VBA Do Döngüleri - Excel VBA Do Loops nasıl kullanılır?

Excel VBA Do Döngüsü

VBA Do döngüsü , kodun istenen kriterlere ulaşılana veya herhangi bir eşik aşılana kadar belirli bir sayıda çalıştırdığı veya gerekli bir veri elde edilene kadar bunu söylemek güvenli olduğu bir alt prosedür içindeki talimatlar kümesidir.

Döngü mantıksal sonuçlar üzerinde çalışırken, test koşulu DOĞRU iken döngüyü ileri geri çalıştırmaya devam eder. Test koşulu YANLIŞ'a döndüğü anda döngüden çıkacaktır. Döngüler, herhangi bir programlama dilinin kalbidir. Makalelerimizde döngülerin önemini ve bunları kodlamanın yollarını gösteriyoruz. Bu yazıda size Do Loop'u nasıl kullanacağınızı gösteriyoruz.

VBA Do Loop nasıl kullanılır?

Örnek 1 - Döngünün Sonundaki Koşul

Döngünün başında durum testini gördük. Önceki kodda, seri numaraları ekleme örneğini görmüştük ve kod böyleydi.

Kod:

Sub Do_While_Loop_Example1 () Dim k As Long k = 1 Do while k <= 10 Hücre (k, 1) .Değer = kk = k + 1 Loop End Sub

Artık sonucu görmek için bu kodu manuel olarak veya F5 kısayol tuşuyla çalıştırabilirsiniz.

Bu kod, 1'den 10'a kadar seri numaraları ekleyecektir.

Ancak döngünün sonunda durumu da test edebiliriz. Döngü kelimesinden sonra "while" kelimesini ve sonundaki durum testini kullanmamız gerekiyor.

Buradaki tek değişiklik, testi aşağıda gösterildiği gibi sonunda uygulamaktır.

Kod:

Sub Do_While_Loop_Example1 () Dim k As Long k = 1 Hücreleri Yap (k, 1) .Değer = kk = k + 1 Döngü iken k <= 10 End Sub

Bunun gibi, koşulu döngü ifadesinin sonundaki de test edebiliriz.

Not: Kod çalışacak, ardından koşulu bir kez daha döngüye geri dönüp dönmediğini test edecektir. Bu, önce çalışacağı ve ardından durumu daha sonra deneyeceği anlamına gelir.

Örnek 2 - Do While Loop Kullanarak Toplama

Excel sayfanızda satış ve maliyet verilerinizin olduğunu varsayın. Aşağıda, hesaplama için oluşturduğum sahte veri seti bulunmaktadır.

Şimdi C sütununda kârın değerini almamız gerekiyor. Benim için bir iş yapacak bir kodu zaten oluşturdum.

Kod:

Sub Do_While_Loop_Example2 () Dim k As Long Dim LR As Long k = 2 LR = Hücreler (Rows.Count, 1) .End (xlUp). K <= LR Hücreleri (k, 3) .Değer = Hücreler (k , 1) + Hücreler (k, 2) k = k + 1 Loop End Sub
LR = Hücreler (Rows.Count, 1) .End (xlUp) .Row

Bu kod, ilk sütundaki son kullanılan satırı tanımlayacaktır. Bu, kodu dinamik kılar çünkü verilerin herhangi bir eklenmesi veya silinmesi varsa, bu, döngüyü çalıştırmak için sıra zamanımı ayarlayacaktır.

k = 2

Hesaplamanın ikinci hücreden itibaren yapılmasını istiyoruz. Yani k'nin başlangıç ​​değeri 2'dir.

K <= LR iken yap

Söylediğim gibi, LR ilk sütunda son kullanılan satırı bulacaktır. Bu, döngünün, k <= LR değerine eşitken çalışacağı anlamına gelir. Bu durumda, 10 satırım var, yani LR = 10.

Döngü, k değeri 10'a ulaşana kadar çalışacaktır. Miktar 10 döngüyü geçtiğinde duracaktır.

Şimdi, sonucu görmek için bu kodu F5 kısayol tuşunu kullanarak veya manuel olarak çalıştırabilirsiniz.

Örnek 3 - Do While Loop'ta Çık İfadesi

Ayrıca koşul hala TRUE iken döngüden çıkabiliriz. Örneğin, yukarıdaki verileri burada da alın.

Eğer tam bir hesaplama yapmak istemiyorum varsayalım, ama sadece karın ilk 5 satır hesaplamak gerekir ve en kısa sürede o 6 ulaşır ulaşmaz inci satır, sen döngünün çıkmasını istiyorum. Bu, excel'deki IF işlevi kullanılarak yapılabilir. Aşağıdaki kod, çıkış ifadesini içerir.

Kod:

Sub Do_While_Loop_Example3 () Dim k As Long Dim LR As Long k = 2 LR = Hücreler (Rows.Count, 1) .End (xlUp) .Row Do While k 6 Sonra Exit Do Cells (k, 3) .Değer = Hücreler ( k, 1) + Hücreler (k, 2) k = k + 1 Loop End Sub
"Eğer k> 6 O Zaman Çıkın"

Bu kod satırı çıkış sürecini başlatacaktır. Döngü, k değeri 6'ya ulaşıncaya kadar çalışmaya devam edecektir. 6'yı aştığı anda, koşul, "Çıkış Yap" kodunu çalıştıracak

Şimdi, sonucu görmek için bu kodu F5 kısayol tuşunu kullanarak veya manuel olarak çalıştırabilirsiniz.

Hatırlanacak şeyler

  • Yapmak. Döngü mantıksal sonuçlar üzerinde çalışır ve test koşulu DOĞRU iken döngüyü ileri geri çalıştırmaya devam eder. Test koşulu YANLIŞ'a döndüğü anda döngüden çıkacaktır.
  • IF işlevini kullanarak daire içinde bir mantıksal testi daha ayarlayarak herhangi bir zamanda döngüden çıkabiliriz.
  • Durum veya test döngünün en üstünde sağlanırsa, önce testi kontrol edecek ve yalnızca DOĞRU ise ilerleyecektir.
  • Döngünün sonunda koşul veya test sağlanırsa, önce döngü deyimi içindeki kod bloğunu çalıştıracak ve gelecekte döngüyü bir kez daha çalıştırmak için geri dönüp dönmeyeceğine karar vermek için koşulu test edecektir. ya da değil.

Ilginç makaleler...