Objek VBA Diperlukan - Bagaimana Memperbaiki Ralat yang Diperlukan Objek di Excel VBA?

Objek Diperlukan dalam Excel VBA

Kesalahan adalah sebahagian daripada bahasa pengekodan, tetapi genius sebenarnya terletak pada mencari kesalahan dan memperbaiki kesalahan tersebut. Langkah pertama untuk memperbaiki kesalahan tersebut adalah kepintaran untuk mengetahui mengapa kesalahan itu berlaku. Sekiranya anda dapat mengetahui mengapa kesalahan itu terjadi, maka adalah sangat mudah untuk memperbaiki kesilapan tersebut tanpa berpeluh. Salah satu kesalahan dalam pengekodan VBA adalah "Objek Diperlukan."

Sekiranya anda ingat, semasa mempelajari pemboleh ubah dan menetapkan jenis data untuk pembolehubah tersebut, kami juga memiliki jenis data "Objek". Ketika jenis data objek ditetapkan, dan jika objek tersebut tidak ada di lembar kerja atau buku kerja yang kita maksudkan untuk pergi, maka kita akan mendapat pesan kesalahan VBA sebagai "Objek Diperlukan." Oleh itu, sebagai pengekod baru, adalah biasa untuk menyatakan rasa panik dalam situasi tersebut kerana, di peringkat permulaan, pemula tidak dapat mencari penyebab kesalahan ini.

Mengapa Ralat yang Diperlukan Objek Berlaku? (dan… Bagaimana Memperbaikinya?)

Ok, diperlukan dua atau tiga contoh untuk benar-benar memahami mengapa ralat ini berlaku dan bagaimana memperbaikinya.

Contohnya, lihat kod di bawah.

Kod:

Sub Last_Row () Dim Wb Sebagai Buku Kerja Dim Ws Sebagai Lembaran Kerja Dim MyToday Sebagai Tarikh Set Wb = ThisWorkbook Set Ws = ThisWorkbook.Worksheets ("Data") Set MyToday = Wb.Ws.Cells (1, 1) MsgBox MyToday End Sub

Izinkan saya menjelaskan kepada anda kod di atas untuk anda.

Saya telah menyatakan tiga pemboleh ubah, dan dua pemboleh ubah pertama merujuk pada objek "Buku Kerja" dan "Lembaran Kerja". Pemboleh ubah ketiga merujuk kepada jenis data "Tarikh".

Ketika jenis data "Objek" ditugaskan ke variabel, kita perlu menggunakan kata kunci "Tetapkan" untuk menetapkan referensi objek ke pemboleh ubah, jadi dalam dua baris berikutnya, dengan menggunakan kata kunci "Set", saya telah menetapkan referensi "ThisWorkbook" ke pemboleh ubah "Wb" kerana pemboleh ubah ini menyimpan jenis data objek sebagai "Workbook" dan untuk pemboleh ubah "Ws" saya telah menetapkan objek lembaran kerja "Data" lembar kerja di buku kerja ini.

Tetapkan Wb = ThisWorkbook
Tetapkan Ws = ThisWorkbook.Worksheets ("Data")
  • Pada baris seterusnya untuk pemboleh ubah jenis data "Tarikh" juga saya telah menggunakan kata kunci "Set" untuk menetapkan nilai sel A1 dalam buku kerja ini (Wb) dan dalam lembaran kerja "Data" (Ws).
Tetapkan Sel MyToday = Wb.Ws. (1, 1)
  • Di baris berikutnya, kami menunjukkan nilai pemboleh ubah "MyDate" nilai sel A1 dalam kotak mesej di VBA.
MsgBox MyToday
  • Ok, mari jalankan kod ini dan lihat hasilnya.

Seperti yang anda lihat di atas, ini menunjukkan mesej ralat VBA sebagai "Objek Diperlukan." Ok, sudah tiba masanya untuk memeriksa mengapa kita menerima mesej ralat ini.

  • Pada gambar mesej ralat di atas di bahagian kod, sambil menunjukkan mesej kesalahan, ia telah menyoroti bahagian kesalahan kod dengan warna biru.
  • Oleh itu, persoalannya ialah mengapa kita mendapat ralat ini. Perkara pertama yang perlu kita lihat ialah jenis data pemboleh ubah tertentu ini. Kembali ke baris kod sebelumnya di mana kami telah menetapkan jenis data ke pemboleh ubah "MyDate."
  • Kami telah menetapkan jenis data pemboleh ubah sebagai "Tarikh" dan sekarang kembali ke garis ralat sekarang.

Pada baris ini, kami telah menggunakan kata kunci "Set", sedangkan jenis data kami bukan jenis data "Objek". Oleh itu, ketika kod VBA melihat kata kunci "Tetapkan", ia menganggapnya adalah jenis data objek dan mengatakan ia memerlukan rujukan objek.

Jadi, intinya adalah kata kunci "Tetapkan" digunakan untuk merujuk hanya untuk merujuk pemboleh ubah objek seperti Lembaran Kerja, Buku Kerja, dll …

Contoh # 1

Sekarang perhatikan kod di bawah.

Kod:

Sub Objek_Required_Error () Julat ("A101"). Nilai = Aplikasi1.Lembaran KerjaFungsi.Sum (Julat ("A1: A100")) Akhir Sub

Dalam kod di atas, kami telah menggunakan fungsi lembar kerja "SUM" untuk mendapatkan jumlah nilai sel dari A1 hingga A100. Apabila anda menjalankan kod ini, kami akan menghadapi ralat di bawah.

Alamak !! Ia mengatakan, "Kesalahan jangka masa '424': Objek Diperlukan.

Sekarang mari kita perhatikan kodnya dengan teliti.

Daripada menggunakan "Aplikasi", kami salah menggunakan "Aplikasi1", jadi ini menemui kesalahan "Objek yang Diperlukan" dalam kod VBA.

Sekiranya kata "Option Explicit" diaktifkan, maka kita akan mendapat kesalahan "Variable Not Defined".

Perkara yang Perlu Diingat

  • Objek Diperlukan bermaksud rujukan jenis data objek perlu tepat.
  • Apabila kata eksplisit pilihan tidak diaktifkan dalam pengekodan, maka kita akan mendapat ralat Objek yang Diperlukan untuk kata-kata variabel yang salah eja, dan jika Option Eksplisit diaktifkan, kita akan mendapat pemboleh ubah yang tidak ditentukan kesalahan untuk kata-kata pemboleh ubah yang salah eja.

Artikel menarik...