Di saat Anda menghadapi runtime error dan Anda mengetahui penyebabnya, mungkin secara garis besar Anda ingin membuat error tersebut sebagai bagian penting dalam macro Anda, sehingga Anda perlu mengetahui bagaimana cara menangani error dengan terencana di balik layar, dan hal ini bertujuan agar pengguna workbook Anda tidak akan merasa terganggu dengan adanya runtime error tersebut.

Anggap saja Anda menyediakan suatu kotak input bagi pengguna untuk memasukkan nama sheet yang akan mereka buat.

Apa yang terjadi jika pengguna lain sudah menggunakan nama yang sama dalam workbook tersebut?

Cara yang dapat digunakan adalah statement On Error GoTo yang memasang perangkap pada error lalu mengarahkannya ke bagian tertentu dalam macro yang akan dijalankan berikutnya untuk menangani error tersebut.

Jika macro Anda mengundang suatu sheet baru dibuat dengan nama Sheet2, sedangkan sheet bernama Sheet2 sudah ada terlebih dahulu dalam workbook, maka pesan runtime error dengan jenis 1004 akan muncul.

Contoh macro di bawah ini menyediakan suatu kotak input bagi pengguna untuk memberi nama sheet lalu memberitahukan bahwa sheet telah dibuat, atau jika sheet tersebut batal dibuat karena nama ganda tidak dibolehkan.

Silakan ikuti langkah-langkah berikut ini untuk menyusun kode macro:

1. Buat sheet baru dengan nama Sheet2 sebagai contoh lalu buka VBE dengan menekan Alt+F11.

2. Buat module baru melalui menu Insert > Module.

3. Pada module buat judul macro misalnya BuatSheetBaru:

Sub BuatSheetBaru()

4. Tepat di bawah garis kode di atas, tetapkan variabel String:

Dim sh As String

5. Beri tugas variabel untuk menampilkan kotak input:

sh = _
InputBox("Silakan masukkan nama sheet:", _
"Membuat worksheet baru")

6. Jika tidak ada input yang dimasukkan, maka keluar dari macro:

If sh = "" Then Exit Sub

7. Pada statement On Error inilah ErrorHandler digunakan:

On Error GoTo ErrorHandler

8. Beritahukan pengguna bahwa sheet baru dibuat:

Worksheets.Add.Name = sh
MsgBox _
"Worksheet " & sh & " telah berhasil dibuat.", , "Selamat!"
Exit Sub

9. Jika terjadi nama ganda, beritahukan juga dengan kotak pesan:

ErrorHandler:
MsgBox _
"Sheet dengan nama " & sh & " telah digunakan.", _
vbCritical, _
"Sheet ganda tidak diizinkan."

10. Kode macro lengkap susunannya adalah sebagai berikut:

Sub BuatSheetBaru()
Dim sh As String
sh = _
InputBox("Silakan masukkan nama sheet:", _
"Membuat worksheet baru")
If sh = "" Then Exit Sub
On Error GoTo ErrorHandler
Worksheets.Add.Name = sh
MsgBox _
"Worksheet " & sh & " telah berhasil dibuat.", , "Selamat!"
Exit Sub
ErrorHandler:
MsgBox _
"Sheet dengan nama " & sh & " telah digunakan.", _
vbCritical, _
"Sheet ganda tidak diizinkan."
End Sub

11. Tekan Alt+Q untuk kembali ke worksheet.

12. Tekan Alt+F8 untuk menjalankan macro BuatSheetBaru.

13. Coba buat Sheet dengan nama yang sama seperti Sheet yang sudah dibuat sebelumnya yaitu Sheet2. 

Demikian penjelasan tentang cara menggunakan ErrorHandler dalam Macro VBA Excel.

Selamat mempraktikkan dan semoga bermanfaat.