VBA Break For Loop

Excel VBA Break For Loop

Dalam VBA Break For Loop juga dikenali sebagai pintu keluar untuk gelung, setiap gelung dalam mana-mana prosedur telah diberikan beberapa set arahan atau kriteria untuk menjalankan nuber of time tetapi sangat umum bahawa beberapa gelung masuk ke gelung tak terbatas sehingga merosakkan kod dalam senario seperti itu, kita memerlukan rehat atau keluar untuk gelung untuk keluar dari situasi tertentu.

Katakan kita telah mengarahkan gelung untuk berjalan selama 10 kali dan berdasarkan keadaan yang diberikan sekiranya nilai sel atau kriteria lain yang dibekalkan berjaya maka ia harus keluar dari gelung excel sebelum menyelesaikan kuota gelung penuh sebanyak 10. Dalam artikel ini , kami akan menunjukkan kepada anda cara keluar dari gelung berdasarkan kriteria yang diberikan.

Bagaimana Memecahkan / Keluar Gelung di VBA?

Anda boleh memuat turun Templat VBA Break For Loop Excel ini di sini - Templat VBA Break For Loop Excel

# 1 - Break Untuk Gelung Seterusnya

VBA For Next Loop digunakan untuk menggulung sel dan melakukan sekumpulan tugas tertentu. Sebagai contoh lihat kod VBA di bawah.

Kod:

 Sub Exit_Loop () Dim K Selagi K = 1 Hingga 10 Sel (K, 1). Nilai = K Seterusnya K Akhir Sub 

Ini akan memasukkan nombor siri dari sel A1 hingga A10.

Ini adalah perkara yang jelas dengan For Next Loop.

Sekarang saya ingin memecahkan gelung apabila ada nilai yang terdapat dalam 10 sel pertama, untuk ini saya telah memasukkan beberapa nilai teks di sel A8.

Sekarang saya ingin memerintahkan ini dalam kod mengatakan "jika sel gelung mempunyai nilai tertentu, ia harus keluar dari gelung sebelum had yang ditentukan sebelumnya".

Kod:

 Sub Exit_Loop () Dim K Selagi K = 1 Hingga 10 Jika Sel (K, 1). Nilai = "" Kemudian Sel (K, 1). Nilai = K Lain-lain Keluar Untuk Akhir Jika Selanjutnya K Akhir Sel 

Lihat baris kod berikut:

Sekiranya Sel (K, 1). Nilai = "" Kemudian

Sel (K, 1). Nilai = K

Lain

  Keluar Untuk

Tamat Sekiranya

Ia mengatakan If Cells (K, 1). Value = "" cell looping sama dengan apa-apa terus gelung memasukkan nombor siri dari 1 hingga 10.

Bahagian terakhir gelung mengatakan:

Lain

  Keluar Untuk

Sekiranya keadaan di atas tidak BENAR maka gelung "Keluar Untuk".

Sekarang jalankan kod itu akan memasukkan nombor siri sehingga sel A7.

Kod di atas langsung keluar dari gelung tanpa mengatakan apa-apa, bagaimana kita tahu bahawa ia telah keluar dari gelung.

Untuk membersihkan kekaburan ini, kita perlu meletakkan satu kotak mesej VBA ringkas seperti di bawah.

Kod:

 Sub Exit_Loop () Dim K Selagi K = 1 Hingga 10 Jika Sel (K, 1). Nilai = "" Kemudian Sel (K, 1). Nilai = K Lain-lain MsgBox "Kami mendapat sel kosong, dalam sel" & Sel (K, 1). Alamat & vbNewLine & "Kami keluar dari gelung" Keluar Untuk Akhir Jika Selanjutnya Akhir K Akhir 

Ketika melingkari sel jika ada sel yang tidak kosong, ia akan memaparkan pesan yang mengatakan "Kami mendapat sel yang tidak kosong, di sel A8. Kami keluar dari gelung ”.

Ini akan memberitahu pengguna mengenai keluarnya gelung dengan alamat sel juga. Sekiranya ada nilai yang dimasukkan secara tidak sengaja, maka kami dapat memeriksa alamat sel yang dikembalikan di kotak mesej.

# 2 - Break Do Sampai Gelung

Seperti bagaimana kita keluar dari Next Loop, kita juga boleh keluar dari gelung "Do Sampai". Contohnya, lihat kod di bawah.

Kod:

 Sub Exit_DoUntil_Loop () Dim K Selagi K = 1 Lakukan Hingga K = 11 Sel (K, 1). Nilai = KK = K + 1 Gelung Akhir Sub 

Kod ini juga menjalankan tugas memasukkan nombor siri. Sebagai contoh, jika kita ingin keluar dari gelung ketika pemboleh ubah nilai "k" menjadi 6, kita perlu memasukkan kriteria sebagai IF k = 6 kemudian keluar dari gelung.

Kod:

 Sub Exit_DoUntil_Loop () Dim K Selagi K = 1 Lakukan Hingga K = 11 Jika K <6 Maka Sel (K, 1). Nilai = K Lain Keluar Keluar Jika K = K + 1 Gelung Akhir Sub 

Ini akan menjalankan gelung sehingga nilai pemboleh ubah menjadi 6, setelah itu akan keluar dari gelung. Sekiranya anda ingin menunjukkan mesej tersebut kepada pengguna, anda juga boleh menambahkan kotak mesej tersebut.

Kod:

 Sub Exit_DoUntil_Loop () Dim K As Long K = 1 Do Hingga K = 11 Jika K 5 "Exit Do End If K = K + 1 Loop End Sub 

Ini akan menunjukkan mesej di bawah.

Seperti ini berdasarkan kriteria yang diberikan, kita dapat keluar dari gelung jika kriteria itu BENAR atau kalau tidak kita dapat meneruskan gelung.