Daftar Isi
Salah satu masalah paling umum yang kami hadapi saat bekerja dengan Menyalin dan menempel di VBA adalah kesalahan waktu berjalan 1004 : Metode PasteSpecial dari Kelas Range Gagal Dalam artikel ini, saya akan menunjukkan kepada Anda apa saja kemungkinan alasan di balik kesalahan ini dan cara mengatasinya, dengan contoh dan ilustrasi yang tepat.
Unduh Buku Kerja Praktik
Unduh buku kerja latihan ini untuk latihan saat Anda membaca artikel ini.
Metode Tempel Khusus Gagal.xlsmMetode PasteSpecial dari Range Class Gagal: Penyebab dan Solusi
Tanpa penundaan lebih lanjut, mari kita lanjutkan ke pembahasan utama kita. Yaitu, apa kemungkinan alasan di balik kesalahan ini, dan bagaimana mengatasinya.
Alasan 1: Mengakses Metode PasteSpecial tanpa Menyalin Apa pun
Ini adalah alasan paling umum di balik kesalahan. Artinya, mencoba mengakses file TempelKhusus tanpa menyalin apa pun.
Untuk memahaminya dengan jelas, periksa yang berikut ini VBA kode.
⧭ Kode VBA:
Sub PasteSpecial_Method_of_Range_Class_Failed() Selection.PasteSpecial Paste:=xlFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False End Sub
Di sini, kami telah menggunakan TempelKhusus metode VBA tanpa menyalin apa pun. Jadi Excel akan menampilkan kesalahan waktu berjalan 1004 ketika Anda menjalankannya.
⧭ Solusi:
Untuk menyelesaikan masalah ini, pertama, Anda perlu menyalin rentang sel lalu mengakses TempelKhusus metode.
Sub PasteSpecial_Method_of_Range_Class_Failed() Application.Range("B3:B5").Copy Selection.PasteSpecial Paste:=xlFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False End Sub
Ketika Anda menjalankan kode ini, ia akan menempelkan rumus rentang B3:B5 dari lembar kerja aktif ke rentang yang dipilih.
Baca selengkapnya: Metode PasteSpecial dari Kelas Lembar Kerja Gagal (Alasan &; Solusi)
Alasan 2: Mengakses Metode PasteSpecial dengan Kesalahan Ejaan
Ini adalah alasan umum lain di balik kesalahan. Artinya, untuk mengakses TempelKhusus dengan kesalahan ejaan dalam argumen apa pun.
Lihatlah yang berikut ini VBA kode untuk memperjelasnya. Di sini kami telah membuat kesalahan ejaan dalam argumen xlPasteAll .
⧭ Kode VBA:
Sub PasteSpecial_Method_of_Range_Class_Failed() Application.Range("B3:B5").Copy Selection.PasteSpecial Paste:=xlPaseAll End Sub
Apabila Anda menjalankan kode ini, Anda akan mendapatkan kesalahan waktu berjalan 1004 .
⧭ Solusi:
Solusinya mudah. Saya yakin Anda sudah bisa menebaknya. Pastikan saja bahwa ejaan semua argumen telah dibuat dengan benar.
Dan kesalahan akan secara otomatis hilang.
Baca selengkapnya: Cara Menggunakan Perintah Khusus Tempel di Excel (5 Cara yang Cocok)
Bacaan Serupa
- Excel VBA: Salin Rentang ke Buku Kerja Lain
- Salin dan Tempel Nilai ke Baris Kosong Berikutnya dengan Excel VBA (3 Contoh)
- Terapkan VBA PasteSpecial dan Pertahankan Pemformatan Sumber di Excel
- Cara Menyalin Nilai yang Sama di Beberapa Sel di Excel (4 Metode)
- Excel VBA untuk Menyalin Baris ke Lembar Kerja Lain Berdasarkan Kriteria
Alasan 3: Membuka Buku Kerja Baru Setelah Menyalin yang Membatalkan Mode Salin/Tempel
Ini adalah alasan penting lainnya di balik kesalahan. Yaitu, melakukan sesuatu yang membatalkan mode salin/tempel sebelum menempel.
Lihatlah kode berikut untuk memahami dengan jelas.
⧭ Kode VBA:
Sub PasteSpecial_Method_of_Range_Class_Failed() Workbooks("Workbook1.xlsx").Worksheets("Sheet1").Range("B3:B5").Select Selection.Copy Dim Workbook2 As Workbook Set Workbook2 = Workbooks.Add Workbook2.SaveAs Filename:=ThisWorkbook.Path & "\" & "Workbook2.xlsx" Workbook2.Activate Workbook2.Unprotect Workbook2.Worksheets("Sheet1").Range("B3:B5").Select Selection.PasteSpecial Paste:=xlPasteAllAkhiri Sub
Di sini kita telah menyalin kisaran B3:B5 dari Sheet1 dari buku kerja yang disebut Buku Kerja1 .
Kemudian kita telah membuat buku kerja baru bernama Buku Kerja2 di folder yang sama dan mencoba menempelkan rentang yang disalin ke rentang B3:B5 dari Sheet1 dari buku kerja itu.
Tetapi ketika kita menjalankan kodenya, ia akan menampilkan Metode PasteSpecial dari Kelas Range Gagal Kesalahan, karena saat kita membuat buku kerja baru, file mode salin/tempel akan dibatalkan.
⧭ Solusi:
Untuk memecahkan masalah ini, pertama-tama, tuliskan baris kode untuk membuat buku kerja baru yang disebut Buku Kerja2 .
Lalu, sisipkan baris untuk mengaktifkan Buku Kerja1 dan menyalin kisaran yang diinginkan darinya.
Dan akhirnya, aktifkan Buku Kerja2 dan menempelkan kisaran yang disalin di sana.
Sub PasteSpecial_Method_of_Range_Class_Failed() Dim Workbook2 As Workbook Set Workbook2 = Workbooks.Add Workbook2.SaveAs Filename:=ThisWorkbook.Path & "\" & "Workbook2.xlsx" Workbooks("Workbook1.xlsx").Aktifkan Lembar Kerja("Sheet1").Range("B3:B5").Pilih Seleksi.Copy Workbook2.Aktifkan Lembar Kerja("Sheet1").Range("B3:B5").Pilih Seleksi.TempelSpecial Paste:=xlPasteAll End Sub
Jalankan kode ini. Ini akan menyalin rentang B3:B5 dari Sheet1 dari Buku Kerja1.
Dan menempelkannya ke dalam Sheet1 dari buku kerja yang baru dibuat yang disebut Buku Kerja2 .
⧭ Perhatian:
Yang jelas, jangan lupa untuk menjaga Buku Kerja1 terbuka saat menjalankan kode.
Baca selengkapnya: Cara Menonaktifkan Salin dan Tempel di Excel tanpa Makro (Dengan 2 Kriteria)
Alasan 4: Mengubah Application.CutCopyMode ke False yang Membatalkan Mode Salin/Tempel
Akhirnya, mungkin ada alasan lain yang menyebabkan terjadinya kesalahan. Aplikasi.CutCopyMode keliru sebelum mengakses TempelKhusus metode.
Meskipun ini bukan praktik yang sangat umum, namun terkadang kita tetap melakukannya ketika kita harus bekerja dengan jumlah baris yang panjang.
Lihat kode berikut untuk memahaminya dengan jelas. Di sini kita telah menyalin rentang B3:B5 , tetapi membatalkan CutCopyMode sebelum menempelkannya.
⧭ Kode VBA:
Sub PasteSpecial_Method_of_Range_Class_Failed() Range("B3:B5").Copy Application.CutCopyMode = False Range("D3:D5").PasteSpecial Paste:=xlPasteAll End Sub
Ketika Anda akan menjalankan kode tersebut, maka akan ditampilkan Metode PasteSpecial dari Kelas Range Gagal kesalahan.
⧭ Solusi:
Saya kira sekarang Anda semua sudah bisa menebak solusinya. Sebenarnya cukup sederhana. Cukup hapus baris dari kode yang mengubah CutCopy mode mati.
Jadi, yang benar VBA kode akan menjadi:
Sub PasteSpecial_Method_of_Range_Class_Failed() Range("B3:B5").Copy Range("D3:D5").PasteSpecial Paste:=xlPasteAll End Sub
Ini akan menyalin rentang B3:B5 dan menempelkannya di atas D3:D5 tanpa masalah.
Baca selengkapnya: VBA Tempel Khusus untuk Menyalin Nilai dan Format di Excel (9 Contoh)
Hal-hal yang Perlu Diingat
Di sini, saya hanya menunjukkan masalah yang mungkin Anda hadapi sewaktu bekerja dengan TempelKhusus metode dalam VBA. Jika Anda ingin mengetahui TempelKhusus metode secara terperinci, kunjungi tautan ini .
Kesimpulan
Jadi, singkatnya, ini adalah alasan yang dapat menyebabkan kesalahan run-time 1004: Metode PasteSpecial od Range Class Gagal Saya harap Anda telah memahami semua poin dengan jelas dan itu akan banyak membantu Anda di masa depan. Apakah Anda tahu alasan lain? Dan apakah Anda memiliki masalah? Jangan ragu untuk bertanya kepada kami. Dan jangan lupa untuk mengunjungi situs kami ExcelWIKI untuk lebih banyak postingan dan pembaruan.