Do While döngüsü belirtilen koşul sağlandığı müddetçe çalışır.
Do Until döngüsü belirtilen bir koşul karşılanana kadar çalışır.
Exit Do komutunda VBA döngüden hemen çıkar.
Do Loop dongüsünde While ve Until kullanılmazsa, gereken yerde Exit Do ile döngüden çıkmak gerekir.
Not: Do Until / Do While döngüleri sonsuz döngü yaratma riski taşıdığı için dikkatli kullanmak gerekir.
Option Explicit Dim ilkHucre As Integer Sub Do_Until_1() ilkHucre = 4 Do Until Range("A" & ilkHucre).Value = "" Range("D" & ilkHucre).Value = Range("A" & ilkHucre).Value + 100 ilkHucre = ilkHucre + 1 Loop End Sub Sub Do_Until_2() ilkHucre = 4 Do Until ilkHucre = 10 Range("E" & ilkHucre).Value = Range("A" & ilkHucre).Value + 100 ilkHucre = ilkHucre + 1 Loop End Sub Sub Do_While() ilkHucre = 4 Do While Range("A" & ilkHucre).Value <> "" Range("F" & ilkHucre).Value = Range("A" & ilkHucre).Value + 100 ilkHucre = ilkHucre + 1 Loop End Sub Sub Do_Until_If() ilkHucre = 4 Do Until ilkHucre = 10 If Range("A" & ilkHucre).Value = 0 Then Exit Do Range("G" & ilkHucre).Value = Range("A" & ilkHucre).Value + 100 ilkHucre = ilkHucre + 1 Loop End Sub
Aşağıdaki döngü sadece Do While ile yapılabilir, For Next ile yapılamaz
Sub Sadece_Sayi() Dim myCevap As String Do While IsNumeric(myCevap) = False myCevap = VBA.InputBox("Lütfen ürün adetini girin") If IsNumeric(myCevap) Then MsgBox "Teşekkürler!" If StrPtr(myCevap) = 0 Then Exit Do 'kullanıcı Cancel'a tıklarsa Loop End Sub