Excel VBA Istirahat Untuk Loop
Dalam VBA Break For Loop juga dikenal sebagai exit for loop, setiap loop dalam prosedur apapun 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 berjalan 10 kali, dan berdasarkan kondisi yang diberikan, jika nilai sel atau kriteria lain yang disediakan berhasil, maka itu harus keluar dari loop excel sebelum menyelesaikan kuota loop penuh 10. Pada artikel ini, kami akan menunjukkan cara keluar dari loop berdasarkan kriteria yang diberikan.

Bagaimana cara memecahkan / keluar loop di VBA?
# 1 - Istirahat Untuk Loop Berikutnya
VBA Untuk Loop Berikutnya digunakan untuk mengulang sel dan melakukan serangkaian tugas tertentu. Misalnya, 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 nilai apa pun ditemukan di 10 sel pertama. Untuk ini, saya telah memasukkan beberapa nilai teks di sel A8.

Sekarang saya ingin menginstruksikan ini dalam kode, mengatakan, "jika sel perulangan memiliki nilai tertentu, itu harus keluar dari loop 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:
If Cells (K, 1) .Value = "" Then
Cells (K, 1) .Value = K
Else
Keluar Untuk
Akhir Jika
Dikatakan If Cells (K, 1). Nilai = "sel perulangan sama dengan tidak ada melanjutkan pengulangan memasukkan nomor seri dari 1 sampai 10.
Bagian terakhir dari loop mengatakan:
Lain
Keluar Untuk
Jika kondisi di atas tidak BENAR, maka loop “Exit For”.
Sekarang jalankan kodenya. Ini akan memasukkan nomor seri hingga sel A7.

Kode di atas langsung keluar dari loop tanpa mengatakan apapun; bagaimana kita tahu itu telah keluar dari loop.
Untuk menghapus ambiguitas ini, kita perlu meletakkan satu kotak pesan VBA sederhana 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 secara tidak sengaja, maka kita dapat memeriksa alamat sel yang dikembalikan di kotak pesan.
# 2 - Hentikan Do Sampai Loop
Seperti bagaimana kita keluar dari Untuk Loop Berikutnya, sama halnya, kita dapat keluar dari loop "Lakukan Sampai" juga. 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 As Long K = 1 Do Sampai K = 11 If K <6 Then Cells (K, 1). Value = K Else Exit Do End If K = K + 1 Loop End Sub
Ini akan menjalankan perulangan hingga nilai variabel menjadi 6. Setelah itu, ia akan keluar dari perulangan. 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 bisa keluar dari loop jika kriterianya BENAR, atau kita bisa melanjutkan loop.