Bagaimana cara memperbaiki kesalahan vba 9 (indeks di luar jangkauan)?

Indeks di luar jangkauan (runtime: error 9)

Kesalahan Subskrip Di Luar Jangkauan (Waktu Berjalan: Kesalahan 9) terjadi ketika Anda merujuk ke suatu objek atau mencoba menggunakan variabel dalam kode yang tidak ada dalam kode, dalam hal ini VBA akan menampilkan kesalahan ini. Karena setiap kode yang Anda tulis adalah unik, penyebab kesalahannya adalah.

indeks di luar jangkauan

Pada contoh berikut, Anda mencoba mengaktifkan “Sheet1” yang merupakan sebuah objek. Namun seperti yang Anda lihat di buku kerja, tidak ada lembar kerja dengan nama “Sheet1” (sebaliknya Anda memiliki “Sheet2”), jadi VBA menampilkan “Subskrip Di Luar Jangkauan” untuk memberi tahu Anda bahwa ada yang salah dengan kode tersebut.

Indeks di luar jangkauan

Mungkin ada situasi lain di mana Anda harus menghadapi kesalahan “Kesalahan Subskrip Di Luar Jangkauan” ketika Anda mencoba mendeklarasikan array dinamis tetapi lupa menggunakan pernyataan DIM dan ReDim untuk mendefinisikan ulang panjang array.

Sekarang dalam kode di atas Anda memiliki array dengan nama “myArray” dan untuk membuatnya dinamis, pertama-tama kita biarkan panjang array kosong. Namun sebelum menambahkan elemen, Anda perlu mendefinisikan ulang panjang array menggunakan pernyataan ReDim.

Dan ini adalah kesalahan yang kami buat pada kode di atas dan VBA mengembalikan kesalahan “Script out of range”.

 Sub myMacro() Dim myArray() As Variant myArray(1) = "One" End Sub

Bagaimana cara memperbaiki indeks di luar jangkauan di Excel?

Cara terbaik untuk mengatasi indeks di luar jangkauan ini adalah dengan menulis kode yang efisien dan pastikan untuk men-debug kode yang telah Anda tulis (langkah demi langkah).

Saat Anda menjalankan kode langkah demi langkah, mudah bagi Anda untuk mengetahui baris kode mana yang mengalami kesalahan karena VBA akan menampilkan pesan kesalahan untuk kesalahan 9 dan menyorot baris tersebut dengan warna kuning.

Hal lain yang dapat Anda lakukan adalah menggunakan “penanganan kesalahan” untuk melompat ke baris kesalahan tertentu ketika kesalahan itu terjadi.

Dalam kode berikut, kami telah menulis baris untuk mengaktifkan sheet tetapi sebelum itu, kami menggunakan pernyataan goto untuk meneruskan ke penangan kesalahan. Di pengendali kesalahan Anda memiliki kotak pesan yang menampilkan pesan dengan Err. Deskripsi bahwa telah terjadi kesalahan.

Jadi ketika Anda menjalankan kode ini dan “Sheet1” tidak ada di buku kerja tempat Anda mencoba mengaktifkannya. Ini akan menampilkan kotak pesan seperti di bawah ini.

Dan jika “Sheet1” ada, tidak akan ada pesan sama sekali.

 Sub myMacro() Dim wks As Worksheet On Error GoTo myError Sheets("Sheet1").Activate myError: MsgBox "There's an error in the code: " & Err.Description & _ ". That means there's some problem with the sheet " & _ "that you want to activate" End Sub

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *