Gejala
Saat Anda menggunakan lokasi properti ataulokasi. alamat Hentian halaman vertikal atau horizontal dalam makro Microsoft Visual Basic for Applications, Anda mungkin menerima pesan kesalahan berikut:
Kesalahan run-time ' 9 ': subskrip di luar rentang
Penyebab
Masalah ini dapat terjadi jika kondisi berikut ini benar:
-
Sel aktif berada di atas Hentian halaman horizontal atau di sebelah kiri Hentian halaman vertikal yang dirujuk oleh indeks Hpagebreaks atau vpagebreaks .
-
Lokasi Hentian halaman vertikal atau horizontal nonaktif di sebelah kanan jendela yang terlihat atau di bawah jendela yang terlihat dari buku kerja.
-
Anda menggunakan Visual Basic for Applications makro dalam Microsoft Excel yang mirip dengan kode berikut:
Sub TestHorizontal() ActiveSheet.Range("CZ1000").Value = 1 MsgBox ActiveSheet.HPageBreaks.Count MsgBox ActiveSheet.HPageBreaks(1).Location.Address MsgBox ActiveSheet.HPageBreaks(2).Location.AddressEnd Sub Sub TestVertical() ActiveSheet.Range("CZ1000").Value = 1 MsgBox ActiveSheet.VPageBreaks.Count MsgBox ActiveSheet.VPageBreaks(1).Location.Address MsgBox ActiveSheet.VPageBreaks(2).Location.Address MsgBox ActiveSheet.VPageBreaks(3).Location.AddressEnd Sub
Penyelesaian Masalah
Microsoft memberikan contoh pemrograman hanya untuk tujuan ilustrasi, tanpa jaminan tertulis maupun tersirat. Ini termasuk, namun tidak terbatas pada, jaminan tersirat mengenai kelayakan untuk diperdagangkan atau kesesuaian untuk tujuan tertentu. Artikel ini menganggap bahwa Anda sudah terbiasa dengan bahasa pemrogaman yang ditunjukkan dan dengan alat yang digunakan untuk membuat dan memperbaiki prosedur. Dukungan Microsoft profesional dapat membantu menjelaskan fungsionalitas dari prosedur tertentu, namun hal tersebut tidak akan memodifikasi contoh ini untuk menyediakan fungsionalitas tambahan atau menyusun prosedur untuk memenuhi kebutuhan tertentu. Untuk mencegah masalah ini, tambahkan kode untuk memilih sel terakhir yang digunakan dalam lembar kerja sebelum kode menggunakan properti Lokasi dari Hentian halaman horizontal atau vertikal. Misalnya, gunakan kode berikut untuk memilih sel akhir, gunakan properti Lokasi , lalu pilih ulang sel aktif asli:
Sub CheckPageBreaks() 'Set object "currcell" equal to active cell. Set currcell = ActiveCell 'Select the last cell on the worksheet that has data. Range("IV65536").Select 'Include code with Location property here. x = ActiveSheet.HPageBreaks(2).Location.Address MsgBox x 'Example sets x equal to address of second horizontal page break. 'Then message box displays the address of the page break. 'Select original active cell. currcell.SelectEnd Sub
Setelah properti Lokasi dihitung, Anda mungkin lagi memilih sel aktif asli. Jika Anda menggunakan kode untuk menggulir di antara sel pertama dan terakhir, atau memilih sel terakhir dan segera memilih ulang sel awal, kesalahan masih mungkin terjadi. Layar harus menggambar ulang dan properti Lokasi terhitung untuk solusi yang efektif. Jika Anda menggunakan kode di atas dengan
Application.ScreenUpdating = False
untuk mencegah menggambar ulang layar, masalah masih terjadi.
Status
Microsoft telah melakukan konfirmasi bahwa masalah ini timbul pada produk Microsoft yang tertera pada bagian "Berlaku untuk".
Informasi Selengkapnya
Jika Anda menggunakan metode Count dengan properti vpagebreaks atau hpagebreaks , Anda mungkin menerima hasil dari nol. Hal ini terjadi di bawah kondisi yang tercantum di bagian "penyebab". Jika Hentian halaman terlihat, metode hitung mungkin memberikan jawaban yang benar. Metode hitung untuk Hentian halaman vertikal atau horizontal mungkin memberikan hasil yang diharapkan jika Hentian halaman berada di dekat bagian yang terlihat dari jendela buku kerja. Solusi yang diberikan sebelumnya bisa digunakan untuk mendapatkan jumlah yang diharapkan. Hentian halaman yang berada di sebelah kanan jendela buku kerja atau di bawah jendela buku kerja mungkin memungkinkan metode hitung bekerja dan Hentian halaman berada, jika jarak dari jendela ke Hentian halaman kurang dari satu setengah jarak antara Hentian halaman.
Referensi
Untuk informasi selengkapnya tentang cara menjebak kesalahan dalam makro, klik nomor artikel berikut ini untuk menampilkan artikel di Basis Pengetahuan Microsoft:
213637 Cara menggunakan "on error" untuk menangani kesalahan dalam makro