VBA Keluar Sub - Keluar dari Sub Prosedur VBA Jika Kondisi Tidak Terpenuhi

Prosedur Exit VBA Excel

Pernyataan Exit Sub keluar dari subprocedure lebih awal dari baris kode VBA yang ditentukan. Namun, untuk keluar dari subprocedure kita perlu menerapkan semacam uji logika.

Mari kita buat ini dalam istilah sederhana.

Sub MacroName () '…' Some code here '… Exit Sub' Keluar dari Sub tanpa mengeksekusi baris kode di bawah '…' Kode ini akan diabaikan '… End Sub

Contoh

Contoh 1

Untuk contoh yang lebih baik, lihat kode di bawah ini.

Kode:

Sub Exit_Example1 () Dim k As Long For k = 1 To 10 Cells (k, 1). Nilai = k Berikutnya k End Sub

Kode di atas akan memasukkan nomor seri dari 1 hingga 10 di sel A1 hingga A10.

Sekarang saya hanya ingin memasukkan 5 nomor seri, dan segera setelah nilai variabel "k" menjadi 6, saya ingin keluar dari sub.

Saya harus menambahkan tes logis di excel sebagai JIKA k = 6 Kemudian Keluar dari Sub .

Kode:

Sub Exit_Example1 () Dim k As Long For k = 1 To 10 If k = 6 Then Exit Sub 'Segera setelah nilai k menjadi 6, ia akan mengabaikan semua kode dan keluar Sel (k, 1). Nilai = k Berikutnya k Akhir Sub

Sekarang jalankan kode baris demi baris. Tekan tombol F8 untuk memulai proses.

Saat ini, nilai k adalah nol.

Untuk mengubah nilai k menjadi 1, tekan tombol F8 sekali lagi.

Jadi nilai k adalah 1, kode kita terus berjalan dan akan memasukkan 1 ke sel A1. Seperti ini, terus jalankan loop sampai nilai k menjadi 6.

Sekarang nilai k adalah 6, dan baris kode akan menjalankan tes logis kita untuk keluar dari subprocedure. Jika saya menekan tombol F8 sekali lagi, itu akan langsung masuk ke seluruh sub prosedur saja.

Seperti yang bisa kita lihat, ini telah menyoroti kata "Exit Sub". Setelah menekan tombol F8, itu akan keluar dari subprocedure tanpa membuka kata "End Sub."

Contoh # 2 - Saat Terjadi Kesalahan, Keluar dari Subprocedure

Kita juga bisa keluar dari subprocedure saat kita mendapatkan nilai kesalahan. Misalnya, perhatikan data di bawah ini untuk membagi angka1 dari angka 2.

Di bawah ini adalah kode untuk mendapatkan pembagian dua angka.

Kode:

Sub Exit_Example2 () Dim k As Long For k = 2 To 9 Cells (k, 3) .Value = Cells (k, 1). Value / Cells (k, 2). Value Next k End Sub

Seperti yang kita ketahui, kita tidak dapat membagi angka apa pun dengan nol. Jadi jika kami mencoba melakukan itu, kami akan mendapatkan kesalahan sebagai Run Time Error '11': Division By Zero.

Untuk menghindari hal ini segera setelah kami menemukan kesalahan, saya akan menyebutkan makro saya untuk keluar dari subprocedure dengan segera. Kode di bawah ini adalah salah satu kasus tersebut.

Kode:

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: Keluar dari Sub Akhiri Sub

Dalam contoh di atas, saya telah menyebutkan pernyataan "On Error Goto ErrorHandler". Di sini kata ErrorHandler adalah label yang telah saya tetapkan. Jika Anda dapat melihat di bagian bawah kode, saya telah menyebutkan mereknya sebagai

ErrorHandler: Keluar dari Sub

Segera setelah kode menemukan kesalahan, itu akan mendorong kode untuk melompat ke label, dan merek memiliki pernyataan "Exit Sub" sehingga akan keluar dari subprocedure.

Sekarang saya akan menjalankan kode; itu akan menghitung pembagian sampai menemukan kesalahan.

Seperti yang Anda lihat di sel C7, itu telah mengalami kesalahan sebagai "Pembagian oleh Nol," sehingga telah keluar dari sub prosedur. Tanpa memberi tahu pengguna keluar dari subprocedure selalu merupakan hal yang berbahaya. Untuk memberi tahu pengguna tentang kesalahan tersebut, kami dapat menyertakan satu kotak pesan kecil.

Kode:

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 " Telah Terjadi Kesalahan dan kesalahannya adalah: "& vbNewLine & Err.Description Keluar Sub End Sub

Kode di atas akan menampilkan pesan kesalahan kemudian keluar dari subprocedure. Saat menjalankan kode, jika terjadi kesalahan, maka akan muncul kotak pesan di VBA seperti di bawah ini.

Ini lebih merupakan cara yang dapat diandalkan untuk keluar dari Sub Prosedur.

Artikel yang menarik...