Aşağıda aynı işi yapan fakat kodlama teknikleri farklı olan döngü örneklerini bulacaksınız. Tüm kodların yaptığı işlem. A1 den A10'a kadar 1 den 10'a kadar sayıları yazmasıdır. Bu örnek üzerine farklı işlemler deneyebilirsiniz.

For …Next

Vba ile ilgilenmeye ve döngülerle çalışmaya başladığınızda ilk karşınız çıkan örnektir. Mantığı çok basittir. For i= Başlangıç to Bitiş ile döngünün kaç kere döndürüleceği belirlenir. Belirlenen sayıda işlem tekrarlanır.
    Sub Dongu_01()
    Dim i As Byte
    For i = 1 To 10
    Cells(i, 1) = i
    Next
    End Sub

For Each …Next

Özelliği döngüde Alan tanımlaması yapmasıdır. Tanımlama yapılıp, işlemin yapılacağı alanın belirtilmesi For…Next döngüsüne oranla performans artışı sağlayacaktır.

    Sub Dongu_02()
    Dim Alan As Range
    For Each Alan In Range("A1:A10")
    Alan.Value = i + 1
    i = i + 1
    Next
    End Sub

Do While…Loop

Do ile başlayan döngüler, kriterlere göre işlem sayısını belirler. Bu döngüler birbirine çok benzer yapılardır. Farkları kriterlerin belirtildiği yerlerin değişmesidir. Bu döngü yapısında belirtilen kriter Do While ile i değeri 10 sayısından küçük veya eşit oluncaya kadar işlemler yapılsın. Yani kriter doğruysa işlemleri yap demektir.
    Sub Dongu_03()
    Dim i As Byte
    i = 1
    Do While i <= 10
    Cells(i, 1) = i
    i = i + 1
    Loop
    End Sub

While…Wend

Do While…Loop döngüsüyle aynı yapıdadır. Bir farkı yoktur. Do , loop gibi tanımlamalarla kafa karıştırmadığı için benim tercihimdir.
    Sub Dongu_04()
    Dim i As Byte
    i = 1
    While i <= 10
    Cells(i, 1) = i
    i = i + 1
    Wend
    End Sub

Do … Loop while

Do While…Loop döngüsünden farkı , orada kriter doğru ise işleme devam et diyorduk. Burada ise kriter doğrulanana kadar işleme devam etmesini bildiriyoruz. Sadece kriterin yerini değiştirdik. Mantığının çok farklı olmadığını görebilirsiniz.

    Sub Dongu_05()
    Dim i As Byte
    i = 1
    Do
    Cells(i, 1) = i
    i = i + 1
    Loop While i <= 10
    End Sub



Do Until…Loop

Do While…Loop döngüsünden küçük bir farkı var. Bildiğiniz gibi While sözcüğünün Türkçe karşılığı “.. iken” olarak çevrilebilir. Yani “öyle iken”, “böyle iken” . Until sözcüğünün Türkçe karşılığı “…. Kadar” olarak çevrilebilir. Yani “oluncaya kadar” , “yapıncaya kadar” gibi. Bu açıklamalara göre bu döngüde verdiğimiz komutta i değeri 10 sayısından büyük olana kadar işleme devam et diyoruz. Dolayısıyla diğer örneklerde kullandığımız i<=10 tanımı yerine , i>10 tanımı bizim için yeterli oluyor.


 Sub Dongu_06()
    Dim i As Byte
    i = 1
    Do Until i > 10
    Cells(i, 1) = i
    i = i + 1
    Loop
    End Sub
alıntıdır...(kaynak:excelvba.net)