VBA Exit Sub

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 ini '...' Kode ini akan diabaikan '... End Sub 

Contoh

Anda dapat mendownload Template VBA Exit Sub Excel ini di sini - Template VBA Exit Sub Excel

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.

Untuk ini, saya harus menambahkan tes logis di excel sebagai IF 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.

Sampai sekarang, nilai k adalah nol.

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

Jadi nilai k adalah 1 kode kami 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 keluar dari seluruh sub prosedur saja.

Seperti yang bisa kita lihat, ini telah menyoroti kata "Exit Sub" . Setelah menekan tombol F8, ia 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 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 yang saya sebutkan labelnya sebagai

ErrorHandler: Keluar dari Sub 

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

Sekarang saya akan menjalankan kodenya, itu akan menghitung pembagian sampai menemukan kesalahan.

Seperti yang Anda lihat di sel C7, ia mengalami kesalahan sebagai "Pembagian oleh Nol" sehingga telah keluar dari subprocedure. 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.