
Excel VBA Break For Loop nedir?
Aşağıdaki örnekte, sayı 5'e ulaştığında For döngüsünü kıracağız ve kontrol For Döngüsünden sonraki bir sonraki ifadeye geçecek. For döngüsünün işlevini kontrol etmek için aşağıdaki kodu VB editöründe yazın.
Sub Exit_Loop()
Dim x As Integer
For x = 1 To 5
If Cells(x, 1).Value = “” Then
Cells(x, 1).Value = x
Else
Exit For
End If
Next x
End Sub
VB şeridindeki “Çalıştır” seçeneğine tıklayarak kodu çalıştırdığımızda, sayı 5’e ulaştıktan sonra döngünün çalışmayı durduracağını göreceğiz.

Önemli Noktalar
- VBA Break döngüsü, belirtilen koşul sağlandıktan sonra For döngüsünden çıkmak istediğimizde kullanılır.
- VBA break For döngüsü için sözdizimi: Exit For
- VBA'da herhangi bir döngü kullandığımızda kod bir kesinti olmadan döngüye devam edebilir. Böyle bir durumda Break For döngüsü kullanılır.
VBA'da Döngüler Nasıl Kırılır/Çıkılır?
#1 – Bir Sonraki Döngü İçin Mola Verin
Örnek : Bu örnekte, 10 değerine kadar 5'in katlarını yazdıracağız ve ardından VBA döngüsünü kırmak için bir koşul vereceğiz . Lütfen referansınız için aşağıdaki adımları izleyin.
Adım 1 : Alt + F11 kullanarak VB düzenleyicisini açın ve Ekle->Modül yoluyla yeni bir modül ekleyin. Alt prosedürü yazmaya başlayın ve x'i bir tamsayı olarak tanımlayın.

Adım 2: x için 1 ile 10 arasında bir değer girin.

Adım 3: Şimdi 1'den 10'a kadar seri numaralarını bir döngüye eklemek için IF döngüsünü kullanalım. Bunun için şu ifadeyi kullanırız – If Cells(x, 2).Value = “”.
Daha sonra x'in her değeri 5 ile çarpılır. – Cells(x, 2).Value = x * 5 :

Adım 4: Boş bir hücre olup olmadığını kontrol etmek için bir koşul sağladık. Yukarıdaki koşul True değilse, For döngüsünden çıkın.
KOD:
Sub Exit_Loop()
Dim x As Integer
For x = 1 To 10
If Cells(x, 2).Value = “” Then
Cells(x, 2).Value = x * 5
Else
Exit For
End If
Next x
End Sub

Adım 5: Yukarıdaki kodu F5 veya VB şeridindeki Çalıştır seçeneğini kullanarak çalıştırın ve yukarıdaki kodun 50'den sonra döngüden çıktığını göreceksiniz.

2 – Do Until Döngüsünü Kırın
Bu bölümde “Do Until” döngüsünden nasıl çıkılacağına bakacağız.
Adım 1 : VB düzenleyicisini açın ve yeni bir Modül ekleyin. Alt prosedürle başlayın ve x'i Uzun VBA veri türü olarak tanımlayın .

Adım 2 : Do…Until'i kullanarak x'in değerini 15'e kadar yazın. Eğer x 7'den büyük olduğunda döngüden çıkmak istiyorsak, bunu aşağıda gösterildiği gibi kodda belirtin:

Adım 3: Aşağıda gösterildiği gibi döngüden çıkmak için aşağıdaki kodu yazın:

Kod :
Sub Exit_DoUntil_Loop()
Dim x As Long
x = 1
Do Until x = 15
If x < 8 Then
Cells(x, 1).Value = x
Else
Exit Do
End If
x = x + 1
Loop
End Sub
Adım 4: Kodu F5'e basarak veya VB şeridindeki Çalıştır seçeneğini seçerek çalıştırın. Döngünün 7 değerinden sonra çıktığını göreceğiz.

Örnek 1
Bu örnekte, kriterlerimiz karşılandığında döngüden çıkmak için Exit For'u kullanacağız . Ayarladığımız kriterler aşağıdaki gibidir.
Eğer i değeri 6'ya ulaşırsa 5 ile çarparak döngüden çıkıyoruz. Ayrıca sonuçlar mesaj kutusunda görülecektir.
Adım 1: VB düzenleyicisini açın ve yeni bir Modül ekleyin. Modülde, alt prosedürle başlayın. Bir 'a' değişkeni tanımlayın ve ona 10 değerini atayın.

Adım 2: 'i'nin bir sayaç değişkeni olduğu ve 2 artırıldığı bir koşulu belirtiyoruz. Bunun için, "i = 0 için Adım 2'ye" yazıyoruz.

Adım 3: i değerinin 6'ya ulaşması durumunda 5 ile çarpılmasını ve mesaj kutusuna değeri yazdırdıktan sonra döngüden çıkmasını sağlayacak bir koşul tanımlayın.
Kod:
Sub VBA_BreakForLoop_Ex()
Dim a As Integer
a = 10
For i = 0 To a Step 2
MsgBox (“Değer i şudur: ” & i)
If i = 6 Then
i = i * 5
MsgBox (“Değeri şudur: ” & i)
Exit For
End If
Next
End Sub

Adım 4 : Aşağıda gösterildiği gibi sonucu görmek için VB şeridindeki Çalıştır seçeneğini kullanarak kodu çalıştırın. Bize 0'dan 2'ye kadar 6'ya kadar i değerini verecek ve 30 değerini vermek için 5 ile çarpacak ve döngüden çıkacaktır.

Örnek 2
Bu örnekte For döngüsünü kullanalım ve ölçütleri sağladığında döngüden çıkalım.
Adım 1 : VB editöründe yeni bir modül açın ve alt prosedüre göre kodu başlatın.

Adım 2 : Bir tam sayı ve değerini tanımlayın.

Adım 3 : Tanımlanan tam sayı için bir For döngüsüyle başlayın ve ona bir aralık verin; burada, 1'den 20'ye kadar bir aralık verdik.

Adım 4 : Kriterleri belirtin; i değeri 12 olduğunda aşağıda gösterildiği gibi Exit For'u kullanın.

Adım 5 : Eğer koşul sağlanmıyorsa aşağıdaki ifade i'yi 1 artırır.

Adım 6: For döngüsünden çıkıldığında çalıştırılacak kodun ilk satırı i değerinin yazılı olduğu mesaj kutusudur.
Sub Break_Loop()
Dim i As Integer
For i = 1 To 20
If i = 12 Then
Exit For
End If
Next i
MsgBox “i=12 değeri oluştuğunda döngüden çıkıldı”
End Sub

Adım 7: Kodu çalıştırdığımızda i=12 değerini içeren mesaj kutusunun açıldığını göreceğiz.

Dikkat Edilmesi Gereken Önemli Noktalar
- For döngüsü ve Do…while gibi pek çok başka döngü için Exit veya Break kullanılabilir.
- VBA'da Exit For kullanıldığında, kontrol For Döngüsü'nden hemen sonraki ifadeye geçer ve yürütmeye devam eder.
- Sonsuz döngüyü kırmak için ESC tuşu gibi Kısayol tuşlarını da kullanabiliriz
- ESC tuşu yalnızca kod ayrı bir iş parçacığında yürütülmüyorsa çalışır.
- VBA dizi boyutu sınırı 60 boyuttur.
- VBA'da dizi boyutunu elde etmek için, o dizide bulunan eleman sayısını saymamız gerekir. Bunu yapmak için, en düşük ve en yüksek elemanı bilmemiz gerekir. Bunun için, sırasıyla üst sınırı ve alt sınırı döndüren UBOUND ve LBOUND işlevleri mevcuttur.
- VBA Dizi boyutu değişkenler kullanılarak değiştirilebilir. Bunu yapmak için dizi boyutunu belirleyin ve değişken boyutta saklayın. Bu görev için çalışma sayfası işlevi CountA'yı kullanabiliriz
- Dizinin boyutunu artırmak için dinamik dizi kullanılır. Bu, diziyi yeniden boyutlandırabileceğimiz ve kodu çalıştırırken ona daha fazla değer ekleyebileceğimiz bir yerdir.
VBA'da sonsuz döngüyü kırmak için Exit For ifadesi kullanılır. For döngüsünde, Do…While veya Until… döngüsünde de kullanılır.
Exit For komutunu kullanarak bir For döngüsünden çıkabilirsiniz. Kod Exit For ifadesine ulaştığında, For döngüsünden çıkacak ve döngüden sonraki satırla devam edecektir.
VBA'da iki For döngüsünden çıkmak için, ikinci döngünüzde döngüye girmeden önce IF ifadesini kullanabilirsiniz. Koşul doğruysa, ikinci döngüden de çıkarsınız.
Eğer VBA Break For çalışmıyorsa lütfen koşulun sağlanıp sağlanmadığını kontrol edin.
Döngüyü kırmanın manuel yolu Esc tuşudur. Ayrıca, Control + Break tuşu VBA'daki kodu kırmak için çalışır.