Subskrip VBA Di Luar Rentang

Subskrip VBA Excel Di Luar Rentang

Subscript out of range adalah kesalahan yang kita temui di VBA ketika kita mencoba mereferensikan sesuatu atau variabel yang tidak ada dalam kode, misalnya, misalkan kita tidak memiliki variabel bernama x tetapi kita menggunakan fungsi msgbox pada x kita akan mengalami kesalahan subskrip di luar jangkauan.

Error VBA Subscript out of range terjadi karena objek yang kami coba akses tidak ada. Ini adalah jenis kesalahan dalam pengkodean VBA dan ini adalah "Run Time Error 9". Penting untuk memahami konsep untuk menulis kode yang efisien dan lebih penting lagi untuk memahami kesalahan kode VBA Anda untuk men-debug kode secara efisien.

Jika kesalahan pengkodean Anda dan Anda tidak tahu apa kesalahan itu ketika Anda pergi.

Seorang dokter tidak dapat memberikan obat kepada pasiennya tanpa mengetahui apa penyakitnya. Yang pasti dokter dan pasien, sama-sama tahu ada penyakit (kesalahan) tapi penting untuk memahami penyakit (kesalahan) daripada memberi obat. Jika Anda dapat memahami kesalahan dengan sempurna maka akan lebih mudah untuk menemukan solusinya.

Pada catatan serupa di artikel ini, kita akan melihat salah satu kesalahan penting yang biasanya kita temui keteraturan yaitu kesalahan "Subscript Out of Range" di Excel VBA.

Apa itu Subscript out of Range Error di Excel VBA?

Misalnya, jika Anda merujuk ke lembar yang tidak ada buku kerja, maka kita mendapatkan kesalahan waktu proses 9: "Subskrip di luar Rentang".

Jika Anda mengklik tombol End, subprocedure akan diakhiri, jika Anda mengklik debug, Anda akan dibawa ke baris kode yang mengalami error, dan bantuan akan membawa Anda ke halaman situs Microsoft.

Mengapa Terjadi Kesalahan Subscript Out of Range?

Seperti yang saya ceritakan sebagai dokter penting untuk menemukan almarhum sebelum memikirkan obatnya. Error VBA Subscript out of range terjadi ketika baris kode tidak membaca objek yang kita masukkan.

Untuk contoh lihat gambar di bawah ini, saya memiliki tiga lembar bernama Sheet1, Sheet2, Sheet3.

Sekarang di kode, saya telah menulis kode untuk memilih lembar "Penjualan".

Kode:

 Sub Macro2 () Sheets ("Sales") Pilih End Sub 

Jika saya menjalankan kode ini menggunakan tombol F5 atau secara manual, saya akan mendapatkan error Run time 9: "Subscript out of Range".

Ini karena saya mencoba mengakses objek lembar kerja "Penjualan" yang tidak ada di buku kerja. Ini adalah kesalahan waktu proses karena kesalahan ini terjadi saat menjalankan kode.

Kesalahan subskrip umum lainnya yang kita dapatkan adalah saat kita merujuk ke buku kerja yang tidak ada. Untuk contoh lihat kode di bawah ini.

Kode:

 Sub Macro1 () Dim Wb As Workbook Set Wb = Workbooks ("Salary Sheet.xlsx") End Sub 

Kode di atas mengatakan variabel WB harus sama dengan buku kerja “Salary Sheet.xlsx”. Sampai sekarang, buku kerja ini tidak dibuka di komputer saya. Jika saya menjalankan kode ini secara manual atau melalui tombol F5, saya akan mendapatkan error Run time 9: "Subscript out of Range".

Ini karena buku kerja yang saya maksud, yang saat ini belum dibuka atau tidak ada sama sekali.

Kesalahan Subskrip VBA dalam Array

Saat Anda mendeklarasikan array sebagai array dinamis dan jika Anda tidak menggunakan kata DIM atau REDIM di VBA untuk menentukan panjang array, kami biasanya mendapatkan kesalahan Subscript VBA di luar jangkauan. Misalnya, lihat kode di bawah ini.

Kode:

 Sub Makro3 () Redupkan MyArray () As Long MyArray (1) = 25 End Sub 

Di atas, saya telah mendeklarasikan variabel sebagai array tetapi saya belum menetapkan titik awal dan akhir melainkan saya langsung menetapkan nilai 25 untuk array pertama.

Jika saya menjalankan kode ini menggunakan tombol F5 atau secara manual, kita akan mendapatkan error Run time 9: "Subscript out of Range".

Untuk memperbaiki masalah ini saya perlu menetapkan panjang array dengan menggunakan kata Redim.

Kode:

 Sub Makro3 () Redupkan MyArray () As Long ReDim MyArray (1 Sampai 5) MyArray (1) = 25 End Sub 

Kode ini tidak memberikan kesalahan apapun.

Bagaimana Cara Menampilkan Kesalahan di Akhir Kode VBA?

Jika Anda tidak ingin melihat kesalahan saat kode aktif dan berjalan tetapi membutuhkan daftar kesalahan di akhir, maka Anda perlu menggunakan penangan kesalahan "Saat Resume Kesalahan". Lihat kode di bawah ini.

Kode:

 Sub Macro1 () Dim Wb As Workbook On Error Resume Set Berikutnya Wb = Buku Kerja ("Gaji Sheet.xlsx") MsgBox Err.Description End Sub 

Seperti yang telah kita lihat, kode ini akan menampilkan error Run time 9: “Subscript out of Range di Excel VBA . Tetapi saya harus menggunakan penangan kesalahan Pada Resume Kesalahan Berikutnya di VBA saat menjalankan kode, kami tidak akan mendapatkan pesan kesalahan apa pun, melainkan di kotak pesan akhir menunjukkan kepada saya deskripsi kesalahan seperti ini.

Anda dapat mendownload Template Subscript Excel VBA Di Luar Rentang di sini: - Template Subscript VBA Di Luar Rentang