Ana Sayfa / Forum Ana Başlıklar / Döngüler / For Each … Next Döngüsü
For Each Eleman In Grup
[ Tekrar Edilmesi İstenilen Kod Bloğu ]
Next [ Eleman ]
Burada kullanılan eleman tanımlanan gruptaki her bir birim, grup ise bu elemanların oluşturduğu kümedir. Bu küme bir dizi (array), belirli bir hücre aralığı (Range("A1"):Range("C5")) veya UserForm üzerinde kullanılan kontroller olabilir.
For Each Eleman In Grup
If .... Then
[ Tekrar Edilmesi İstenilen Kod Bloğu ]
[ Exit For ]
End If
Next [ Eleman ]
For Each ... için tanımlanan grupta en az bir eleman varsa döngüye girilir ve Tekrar Edilmesi İstenilen Kod Bloğu çalıştırılır. Döngüye girildikten sonra, döngüdeki tüm ifadeler yani, For Each ve Next arasında kalan kodlar gruptaki ilk eleman için yürütülür. Grupta daha fazla eleman varsa , döngüdeki ifadeler her eleman için yürütülmeye devam edilir. Grupta başka eleman kalmadığında, döngüden çıkılır ve uygulama Next ifadesini izleyen ifadeyle devam eder.
İstenen sayıda Exit For ifadesi, alternatif bir çıkış yolu olarak döngünün herhangi bir yerine yerleştirilebilir. Exit For genellikle bazı durumların değerlendirilip şart sağlandıktan sonra kullanılır, örneğin If… Then denetiminde şart sağlandıktan sonra, kontrol Next'i akip eden ifadeye yani koda aktarılır.
Private Sub UserForm_Initialize()
Dim i As Range
For Each i In Range("A1:C5")
i.Value = "X"
Next i
End Sub
Yukarıdaki kodu açıklamak gerekirse; A1 ve C5 hücre aralığındaki hücreleri bir küme olarak kabul edersek, bu kümenin her bir elemanına "i" değişkeni (Range("A1"), Range("B1"), Range("C1") gibi) ile ulaşıp, ulaşılan bu elemanın temsil ettiği hücreye "X" verisini yaz. Burada "i" değişkeni tanımlanan gruptaki her bir hücre adresini temsil etmektedir. Yine ayrıca buradaki işlem sırası ("A1", "A2", "A3") sırasıyla değil, ("A1", "B1", "C1") sırasıdır.
Bu Alt Başlık için henüz Soru oluşturulmamış...
TOPLAM | DÜN | |
---|---|---|
Sorular: | 2 | 0 |
Gönderiler: | 3 | 0 |
Kullanıcılar: | 4 | 0 |