Do Until / Do While Döngüleri

Do Until / Do While döngüleri aynı For…Next döngüsü gibi çalışır. Tek farkı For…Next döngüsündeki gibi bir sayaç kullanma mecburiyeti yoktur.

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

Yayımlandı

kategorisi

yazarı:

Etiketler: