VBA Istirahat Untuk Loop

Excel VBA Istirahat Untuk Loop

Di VBA Break For Loop juga dikenal sebagai exit for loop, setiap loop dalam prosedur apa pun telah diberikan beberapa set instruksi atau kriteria untuk menjalankan nuber waktu tetapi sangat umum bahwa beberapa loop masuk ke loop tak terbatas sehingga merusak kode dalam skenario seperti itu kita perlu istirahat atau keluar untuk loop keluar dari situasi tertentu.

Katakanlah kita telah menginstruksikan loop untuk dijalankan selama 10 kali dan berdasarkan kondisi yang diberikan jika nilai sel atau kriteria lain yang disediakan berhasil maka harus keluar dari loop excel sebelum menyelesaikan kuota loop penuh 10. Dalam artikel ini , kami akan menunjukkan kepada Anda cara keluar dari loop berdasarkan kriteria yang diberikan.

Bagaimana cara memutus / keluar loop di VBA?

Anda dapat mendownload Template VBA Break For Loop Excel ini di sini - Template VBA Break For Loop Excel

# 1 - Istirahat Untuk Loop Berikutnya

VBA For Next Loop digunakan untuk melakukan loop di atas sel dan melakukan serangkaian tugas tertentu. Untuk contoh lihat kode VBA di bawah ini.

Kode:

 Sub Exit_Loop () Dim K As Long For K = 1 To 10 Cells (K, 1]. Nilai = K Berikutnya K End Sub 

Ini akan memasukkan nomor seri dari sel A1 hingga A10.

Ini adalah hal yang jelas dengan For Next Loop.

Sekarang saya ingin memutus loop ketika ada nilai yang ditemukan di 10 sel pertama, untuk ini saya telah memasukkan beberapa nilai teks di sel A8.

Sekarang saya ingin menginstruksikan ini dalam kode yang mengatakan "jika sel perulangan memiliki nilai tertentu, ia harus keluar dari perulangan sebelum batas yang ditentukan sebelumnya".

Kode:

 Sub Exit_Loop () Dim K As Long For K = 1 To 10 If Cells (K, 1) .Value = "" Lalu Cells (K, 1) .Value = K Lain Keluar Untuk Akhir Jika K Berikutnya Akhir Sub 

Lihat baris kode ini:

Jika Sel (K, 1) .Value = "" Lalu

Sel (K, 1). Nilai = K

Lain

  Keluar Untuk

Berakhir jika

Ia mengatakan If Cells (K, 1) .Value = "" sel perulangan sama dengan tidak ada, lanjutkan pengulangan memasukkan nomor seri dari 1 hingga 10.

Bagian terakhir dari loop mengatakan:

Lain

  Keluar Untuk

Jika kondisi di atas tidak BENAR, maka loop “Exit For”.

Sekarang jalankan kode itu akan memasukkan nomor seri sampai sel A7.

Kode di atas langsung keluar dari loop tanpa mengatakan apa-apa, bagaimana kita tahu itu telah keluar dari loop.

Untuk menghapus ambiguitas ini kita perlu meletakkan satu kotak pesan VBA sederhana seperti di bawah ini.

Kode:

 Sub Exit_Loop () Dim K As Long For K = 1 To 10 If Cells (K, 1) .Value = "" Lalu Cells (K, 1) .Value = K Else MsgBox "Kami punya sel yang tidak kosong, di sel" & Sel (K, 1) .Alamat & vbNewLine & "Kami keluar dari loop" Keluar Untuk Akhir Jika Berikutnya K Akhir Sub 

Saat melakukan perulangan melalui sel jika ada sel yang tidak kosong ditemukan, itu akan menampilkan pesan yang mengatakan "Kami mendapat sel yang tidak kosong, di sel A8. Kami keluar dari lingkaran ”.

Ini akan memberi tahu pengguna tentang keluarnya loop dengan alamat sel juga. Jika ada nilai yang dimasukkan karena kesalahan maka kita dapat memeriksa alamat sel yang dikembalikan di kotak pesan.

# 2 - Hentikan Sampai Loop

Seperti bagaimana kita keluar dari For Next Loop, kita juga bisa keluar dari loop "Do Sampai". Misalnya, lihat kode di bawah ini.

Kode:

 Sub Exit_DoUntil_Loop () Dim K Selama K = 1 Lakukan Hingga K = 11 Sel (K, 1) Nilai = KK = K + 1 Loop End Sub 

Kode ini juga melakukan tugas memasukkan nomor seri. Misalnya, jika kita ingin keluar dari loop ketika nilai variabel “k” menjadi 6, kita perlu memasukkan kriteria sebagai IF k = 6 lalu keluar dari loop.

Kode:

 Sub Exit_DoUntil_Loop () Dim K Selama K = 1 Lakukan Hingga K = 11 Jika K <6 Kemudian Sel (K, 1) Nilai = K Lain Keluar Keluar Lakukan End Jika K = K + 1 Loop End Sub 

Ini akan menjalankan loop sampai nilai variabel menjadi 6, setelah itu akan keluar dari loop. Jika Anda ingin menampilkan pesan tersebut kepada pengguna, Anda juga dapat menambahkan kotak pesan.

Kode:

 Sub Exit_DoUntil_Loop () Dim K Selama K = 1 Lakukan Hingga K = 11 Jika K 5 "Keluar Do End Jika K = K + 1 Loop End Sub 

Ini akan menampilkan pesan di bawah.

Seperti ini berdasarkan kriteria yang diberikan, kita dapat keluar dari pengulangan jika kriterianya BENAR atau kita bisa melanjutkan pengulangan.