Objek VBA Diperlukan

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 kesilapan tersebut adalah kepintaran untuk mengetahui mengapa kesalahan itu berlaku. Sekiranya anda dapat mengetahui mengapa kesalahan itu terjadi, 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 kepada pemboleh ubah tersebut, kami juga mempunyai jenis data "Objek". Apabila jenis data objek ditugaskan dan jika objek itu tidak ada di lembar kerja atau buku kerja yang kita rujuk 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 pada 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 membetulkannya.

Anda boleh memuat turun Templat Excel Diperlukan Objek VBA ini di sini - Templat Excel Diperlukan Objek VBA

Sebagai contoh lihat kod di bawah.

Kod:

 Sub Last_Row () Dim Wb Sebagai Workbook Dim Ws Sebagai Worksheet 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 menerangkan 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".

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

 Tetapkan Wb = Buku Kerja Ini
 Tetapkan Ws = ThisWorkbook.Worksheets ("Data")
  • Pada baris seterusnya untuk pemboleh ubah jenis data "Tarikh" juga saya telah menggunakan kata kunci "Set" untuk menetapkan nilai nilai sel A1 dalam buku kerja ini (Wb) dan dalam lembaran kerja "Data" (Ws).
 Tetapkan Sel MyToday = Wb.Ws. (1, 1)
  • Di baris seterusnya, 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, ia 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 ralat, 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 khusus 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", anggapan itu 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")) Sub Akhir 

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

Alamak !! Ia mengatakan "Ralat masa berjalan '424': Objek Diperlukan.

Sekarang mari kita perhatikan kodnya dengan teliti.

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

Sekiranya kata "Option Explicit" diaktifkan maka kita akan mendapat ralat "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 pemboleh ubah yang salah eja dan jika Opsyen Eksplisit diaktifkan kita akan mendapatkan kesalahan yang tidak ditentukan pemboleh ubah untuk kata-kata pemboleh ubah yang salah eja.