Isi kandungan
Salah satu masalah paling biasa yang kami hadapi semasa bekerja dengan menyalin dan menampal dalam VBA ialah ralat masa larian 1004 : Tampal Kaedah Khas Kelas Julat Gagal . Dalam artikel ini, saya akan menunjukkan kepada anda kemungkinan sebab di sebalik ralat ini dan cara menyelesaikannya, dengan contoh dan ilustrasi yang betul.
Muat Turun Buku Kerja Amalan
Muat turun buku kerja latihan ini untuk bersenam semasa anda membaca artikel ini.
TampalKaedah Khas Gagal.xlsm
TampalKaedah Khas Kelas Julat Gagal: Punca dan Penyelesaian
Tanpa berlengah lagi, mari pergi ke perbincangan utama kami. Iaitu, apakah sebab yang mungkin di sebalik ralat ini dan cara menyelesaikannya.
Sebab 1: Mengakses Kaedah Tampal Khas tanpa Menyalin Apa-apa
Ini adalah yang paling sebab biasa di sebalik kesilapan. Iaitu, cuba mengakses kaedah PasteSpecial tanpa menyalin apa-apa.
Untuk memahaminya dengan jelas, semak VBA kod berikut.
⧭ Kod VBA:
3991
Di sini, kami telah menggunakan kaedah PasteSpecial VBA tanpa meniru apa sahaja. Jadi Excel akan memaparkan ralat masa jalan 1004 apabila anda menjalankannya.
⧭ Penyelesaian:
Untuk menyelesaikan masalah ini, mula-mula anda perlu menyalin julat sel kemudian mengakses kaedah PasteSpecial .
4477
Apabila anda menjalankan kod ini, ia akantampalkan formula julat B3:B5 lembaran kerja aktif pada julat yang dipilih.
Baca Lagi: Tampal Kaedah Khas Kelas Lembaran Kerja Gagal (Sebab & Penyelesaian)
Sebab 2: Mengakses Kaedah Tampal Khas dengan Ralat Ejaan
Ini adalah satu lagi sebab biasa di sebalik ralat. Iaitu, untuk mengakses kaedah PasteSpecial dengan ralat ejaan dalam sebarang hujah.
Lihat kod VBA berikut untuk menjelaskannya. Di sini kami telah membuat kesilapan ejaan dalam hujah xlPasteAll .
⧭ Kod VBA:
5297
Apabila anda menjalankan kod ini, anda akan mendapat ralat masa jalan 1004 .
⧭ Penyelesaian:
Penyelesaiannya mudah. Saya pasti anda sudah menekanya. Cuma pastikan bahawa ejaan semua hujah telah dibuat dengan betul.
Dan ralat akan hilang secara automatik.
Baca Lagi: Cara Menggunakan Tampal Perintah Khas dalam Excel (5 Cara Yang Sesuai)
Bacaan Serupa
- Excel VBA: Salin Julat ke Buku Kerja Lain
- Salin dan Tampal Nilai ke Baris Kosong Seterusnya dengan Excel VBA (3 Contoh)
- Gunakan VBA PasteSpecial dan Simpan Pemformatan Sumber dalam Excel
- Cara Menyalin Nilai Yang Sama dalam Berbilang Sel dalam Excel (4 Kaedah)
- Excel VBA untuk Menyalin Baris ke Lembaran Kerja Lain Berdasarkan Kriteria
Sebab 3: Membuka BaharuBuku Kerja Selepas Menyalin yang Membatalkan Mod Salin/Tampal
Ini adalah satu lagi sebab penting di sebalik ralat. Iaitu, untuk melakukan sesuatu yang membatalkan mod salin/tampal sebelum menampal.
Lihat kod berikut untuk memahami dengan jelas.
⧭ Kod VBA:
7732
Di sini kami telah menyalin julat B3:B5 daripada Helaian1 buku kerja yang dipanggil Buku Kerja1 .
Kemudian kami telah mencipta buku kerja baharu yang dipanggil Buku Kerja2 dalam folder yang sama dan cuba menampal julat yang disalin pada julat B3:B5 Helaian1 buku kerja itu.
Tetapi apabila kami menjalankan kod, ia akan memaparkan Kaedah Tampal Kelas Julat Khas Gagal Ralat, kerana apabila kami mencipta buku kerja baharu, mod salin/tampal akan dibatalkan.
⧭ Penyelesaian:
Untuk menyelesaikan masalah ini, tulis dahulu ke bawah baris kod untuk mencipta buku kerja baharu yang dipanggil Buku Kerja2 .
Kemudian masukkan baris untuk mengaktifkan Buku Kerja1 dan salin julat yang dikehendaki daripadanya.
Dan akhir sekali, aktifkan Buku Kerja2 dan tampal julat yang disalin di sana.
9791
Jalankan kod ini. Ia akan menyalin julat B3:B5 daripada Helaian1 daripada Buku Kerja1.
Dan tampalkannya ke dalam Helaian1 buku kerja yang baru dibuat yang dipanggil Buku Kerja2 .
⧭ Langkah Berjaga-jaga:
Jelas sekali, jangan lupa untuk memastikan Buku Kerja1 terbuka semasa menjalankankod.
Baca Lagi: Cara Lumpuhkan Salin dan Tampal dalam Excel tanpa Makro (Dengan 2 Kriteria)
Sebab 4: Mengubah Application.CutCopyMode kepada Palsu yang Membatalkan Mod Salin/Tampal
Akhir sekali, mungkin ada sebab lain untuk ralat itu berlaku. Kami mungkin mematikan Application.CutCopyMode secara tersilap sebelum mengakses kaedah PasteSpecial .
Walaupun ia bukan amalan yang sangat biasa, namun kadangkala kami melakukannya apabila kami ingin berfungsi dengan bilangan baris yang panjang.
Lihat kod berikut untuk memahaminya dengan jelas. Di sini kami telah menyalin julat B3:B5 , tetapi membatalkan CutCopyMode sebelum menampalnya.
⧭ Kod VBA:
3297
Apabila anda menjalankan kod, ia akan menunjukkan ralat Kaedah Tampal Kelas Julat Khas .
⧭ Penyelesaian:
Saya rasa sekarang anda semua telah meneka penyelesaiannya. Ia agak mudah sebenarnya. Hanya alih keluar baris daripada kod yang mematikan mod CutCopy .
Jadi, kod VBA yang betul ialah:
9252
Ia akan menyalin julat B3:B5 dan menampalnya pada D3:D5 tanpa sebarang masalah.
Baca Lagi: VBA Tampal Khas untuk Menyalin Nilai dan Format dalam Excel (9 Contoh)
Perkara yang Perlu Diingati
Di sini saya hanya menunjukkan masalah yang mungkin anda hadapi semasa bekerja dengan kaedah PasteSpecial dalam VBA. Jika andaingin mengetahui kaedah PasteSpecial secara terperinci, lawati pautan ini .
Kesimpulan
Jadi, ringkasnya, ini adalah sebab yang boleh menyebabkan ralat masa larian 1004: Kaedah Tampalkan Khas dari Kelas Julat Gagal dalam kod anda. Saya harap anda telah memahami semua perkara dengan jelas dan ia akan banyak membantu anda pada masa hadapan. Adakah anda tahu sebab lain? Dan adakah anda mempunyai sebarang masalah? Jangan ragu untuk bertanya kepada kami. Dan jangan lupa untuk melawati tapak kami ExcelWIKI untuk lebih banyak siaran dan kemas kini.