Sub Keluar VBA - Keluar dari Sub-proses VBA Sekiranya Syarat-syarat tidak dipenuhi

Sub Prosedur Keluar Excel VBA

Exit Sub statement keluar dari subprocedure lebih awal dari garis yang ditentukan kod VBA. Namun, untuk keluar dari subprosedur kita perlu menerapkan semacam ujian logik.

Mari bina ini dengan mudah.

Sub MacroName () '…' Beberapa kod di sini '… Keluar Sub' Keluar dari Sub tanpa menjalankan baris kod selanjutnya di bawah '…' Kod ini akan diabaikan '… Akhir Sub

Contoh

Contoh # 1

Untuk contoh yang lebih baik, lihat kod di bawah.

Kod:

Sub Exit_Contoh1 () Dim k Selagi k = 1 Hingga 10 Sel (k, 1). Nilai = k Seterusnya k Akhir Sub

Kod di atas akan memasukkan nombor siri dari 1 hingga 10 dalam sel A1 hingga A10.

Sekarang saya ingin memasukkan hanya 5 nombor siri, dan sebaik sahaja nilai pemboleh ubah "k" menjadi 6, saya ingin keluar dari sub.

Saya perlu menambahkan ujian logik di excel sebagai IF k = 6 Kemudian Keluar Sub .

Kod:

Sub Exit_Contoh1 () Dim k Selagi k = 1 Hingga 10 Jika k = 6 Maka Keluar Sub 'Sebaik sahaja nilai k menjadi 6 ia akan mengabaikan semua kod dan keluar dari Sel (k, 1). Nilai = k Seterusnya k Akhir Sub

Sekarang jalankan kod baris demi baris. Tekan kekunci F8 untuk memulakan prosiding.

Setakat ini, nilai k adalah sifar.

Untuk menukar nilai k menjadi 1, tekan kekunci F8 sekali lagi.

Jadi nilai k adalah 1, kod kami terus berjalan dan akan memasukkan 1 ke sel A1. Seperti ini, terus jalankan gelung sehingga nilai k menjadi 6.

Sekarang nilai k adalah 6, dan garis kod akan melaksanakan ujian logik kami untuk keluar dari subprosedur. Sekiranya saya menekan kekunci F8 sekali lagi, ia akan menggunakan keseluruhan sub prosedur sahaja.

Seperti yang kita lihat, kata ini telah menyoroti kata "Exit Sub." Setelah menekan kekunci F8, ia akan keluar dari subproses tanpa pergi ke kata "End Sub."

Contoh # 2 - Pada Ralat Keluar dari Subproses

Kita juga boleh keluar dari subprosedur ketika kita mendapat nilai ralat. Sebagai contoh, pertimbangkan data di bawah ini untuk membahagi nombor1 dari nombor 2.

Berikut adalah kod untuk mendapatkan pembahagian dua nombor.

Kod:

Sub Exit_Contoh2 () Dim k Selagi k = 2 Hingga 9 Sel (k, 3). Nilai = Sel (k, 1). Nilai / Sel (k, 2). Nilai Selanjutnya k Akhir Sub

As we know, we cannot divide any number by zero. So if we attempt to do that, we will get the error as Run Time Error ‘11’: Division By Zero.

To avoid this as soon as we encounter any error, I will mention my macro to exit the subprocedure with immediate effect. The below code is one such case.

Code:

Sub Exit_Example2() Dim k As Long For k = 2 To 9 On Error GoTo ErrorHandler Cells(k, 3).Value = Cells(k, 1).Value / Cells(k, 2).Value Next k ErrorHandler: Exit Sub End Sub

In the above example, I have mentioned the statement “On Error Goto ErrorHandler.” Here the word ErrorHandler is the label I have assigned. If you can see at the bottom of the code, I have mentioned the brand as

ErrorHandler: Exit Sub

As soon as code encounters an error, it will push code to jump to the label, and the brand has the “Exit Sub” statement so that it will exit the subprocedure.

Now I will run the code; it will calculate the division until it finds an error.

As you can see in the cell C7, it has encountered an error as “Division by Zero,” so it has exit the subprocedure. Without informing the user exiting the subprocedure is always a dangerous thing. To notify the user of the error, we can include one small message box.

Code:

Sub Exit_Example2() Dim k As Long For k = 2 To 9 On Error GoTo ErrorHandler Cells(k, 3).Value = Cells(k, 1).Value / Cells(k, 2).Value Next k ErrorHandler: MsgBox "Error has Occured and the error is:" & vbNewLine & Err.Description Exit Sub End Sub

Kod di atas akan menunjukkan mesej ralat kemudian keluar dari subproses. Semasa menjalankan kod, jika berlaku ralat, ia akan menunjukkan kotak mesej di VBA seperti di bawah.

Ini lebih merupakan kaedah yang boleh dipercayai untuk keluar dari Sub Prosedur.

Artikel menarik...