Lỗi thời gian chạy 1004: Phương pháp dán đặc biệt của lớp phạm vi không thành công

  • Chia Sẻ Cái Này
Hugh West

Một trong những vấn đề phổ biến nhất mà chúng tôi gặp phải khi làm việc với sao chép và dán trong VBA lỗi thời gian chạy 1004 : PasteSpecial Method of Range Class Failed . Trong bài viết này, tôi sẽ chỉ cho bạn những lý do có thể có đằng sau lỗi này và cách giải quyết những lý do đó, với các ví dụ và hình minh họa thích hợp.

Tải xuống Sách bài tập thực hành

Tải sách bài tập thực hành này xuống để thực hành khi bạn đang đọc bài viết này.

PasteSpecial Method Failed.xlsm

PasteSpecial Method of Range Class Failed: Nguyên nhân và Giải pháp

Còn chần chừ gì nữa, hãy bắt đầu cuộc thảo luận chính của chúng ta. Đó là, những lý do có thể gây ra lỗi này và cách giải quyết những lý do đó.

Lý do 1: Truy cập Phương thức PasteSpecial mà không cần sao chép bất kỳ thứ gì

Đây là lý do quan trọng nhất lý do phổ biến đằng sau lỗi. Nghĩa là cố gắng truy cập phương thức PasteSpecial mà không sao chép bất kỳ thứ gì.

Để hiểu rõ phương thức này, hãy kiểm tra mã VBA sau.

⧭ Mã VBA:

1880

Ở đây, chúng tôi đã sử dụng phương pháp PasteSpecial của VBA mà không cần sao chép bất cứ thứ gì. Vì vậy, Excel sẽ hiển thị lỗi thời gian chạy 1004 khi bạn chạy nó.

⧭ Giải pháp:

Để giải quyết vấn đề này, trước tiên, bạn cần sao chép một dải ô rồi truy cập phương thức PasteSpecial .

9878

Khi bạn chạy mã này, nó sẽdán các công thức của dải ô B3:B5 của trang tính đang hoạt động vào dải ô đã chọn.

Đọc thêm: PasteSpecial Method of Worksheet Class Failed (Lý do & Giải pháp)

Lý do 2: Truy cập Phương thức PasteSpecial có lỗi chính tả

Đây là một lý do phổ biến khác đằng sau lỗi chính tả lỗi. Nghĩa là, để truy cập phương thức PasteSpecial với (các) lỗi chính tả trong bất kỳ đối số nào.

Hãy xem mã VBA sau đây để hiểu rõ. Ở đây, chúng tôi đã mắc lỗi chính tả trong đối số xlPasteAll .

⧭ Mã VBA:

1123

Khi chạy mã này, bạn sẽ gặp phải lỗi thời gian chạy 1004 .

⧭ Giải pháp:

Giải pháp rất dễ dàng. Tôi chắc rằng bạn đã đoán được điều đó. Chỉ cần đảm bảo rằng tất cả các đối số đều được viết đúng chính tả.

Và lỗi sẽ tự động biến mất.

Đọc thêm: Cách sử dụng Dán Lệnh đặc biệt trong Excel (5 cách phù hợp)

Cách đọc tương tự

  • VBA Excel: Sao chép phạm vi sang sổ làm việc khác
  • Sao chép và dán các giá trị vào hàng trống tiếp theo bằng VBA Excel (3 ví dụ)
  • Áp dụng VBA PasteSpecial và giữ nguyên định dạng nguồn trong Excel
  • Cách sao chép cùng một giá trị trong nhiều ô trong Excel (4 phương pháp)
  • VBA Excel để sao chép hàng sang trang tính khác dựa trên tiêu chí

Lý do 3: Mở một cái mớiSổ làm việc sau khi sao chép đã hủy chế độ sao chép/dán

Đây là một lý do quan trọng khác gây ra lỗi. Tức là thực hiện thao tác hủy chế độ sao chép/dán trước khi dán.

Hãy xem đoạn mã sau để hiểu rõ.

⧭ Mã VBA:

8312

Ở đây chúng tôi đã sao chép phạm vi B3:B5 từ Sheet1 của sổ làm việc có tên Workbook1 .

Sau đó, chúng tôi đã tạo một sổ làm việc mới có tên Workbook2 trong cùng một thư mục và cố gắng dán dải ô đã sao chép vào dải ô B3:B5 của Sheet1 của sổ làm việc đó.

Nhưng khi chúng tôi chạy mã, nó sẽ hiển thị Lỗi PasteSpecial Method of Range Class Failed , bởi vì thời điểm chúng tôi tạo sổ làm việc mới, chế độ sao chép/dán sẽ bị hủy.

⧭ Giải pháp:

Để giải quyết vấn đề này, trước tiên, hãy viết xuống các dòng mã để tạo sổ làm việc mới có tên Workbook2 .

Sau đó, chèn các dòng để kích hoạt Workbook1 và sao chép phạm vi mong muốn từ sổ đó.

Và cuối cùng, kích hoạt Workbook2 và dán phạm vi đã sao chép vào đó.

2998

Chạy mã này. Nó sẽ sao chép phạm vi B3:B5 từ Sheet1 của Workbook1.

Và dán nó vào Sheet1 của sổ làm việc mới tạo có tên là Workbook2 .

⧭ Thận trọng:

Tất nhiên, đừng quên mở Workbook1 trong khi chạymã.

Đọc thêm: Cách vô hiệu hóa sao chép và dán trong Excel mà không cần macro (với 2 tiêu chí)

Lý do 4: Chuyển Application.CutCopyMode thành False để Hủy Chế độ Sao chép/Dán

Cuối cùng, có thể có một lý do khác khiến lỗi xảy ra. Chúng tôi có thể tắt nhầm Application.CutCopyMode trước khi truy cập phương thức PasteSpecial .

Mặc dù đây không phải là một phương pháp rất phổ biến nhưng đôi khi chúng tôi vẫn mắc phải khi cần làm việc với số lượng dòng dài.

Hãy xem đoạn mã sau để hiểu rõ. Ở đây, chúng tôi đã sao chép phạm vi B3:B5 , nhưng đã hủy CutCopyMode trước khi dán nó.

⧭ Mã VBA:

3722

Khi bạn chạy mã, nó sẽ hiển thị lỗi Paste Special Method of Range Class Failed .

⧭ Giải pháp:

Tôi đoán bây giờ các bạn đã đoán ra giải pháp. Nó thực sự khá đơn giản. Chỉ cần xóa dòng khỏi mã tắt chế độ CutCopy .

Vì vậy, mã VBA chính xác sẽ là:

1513

Nó sẽ sao chép phạm vi B3:B5 và dán nó vào D3:D5 mà không gặp bất kỳ sự cố nào.

Đọc thêm: VBA Paste Special để sao chép các giá trị và định dạng trong Excel (9 ví dụ)

Những điều cần nhớ

Ở đây tôi chỉ trình bày những rắc rối mà bạn có thể gặp phải khi làm việc với phương thức PasteSpecial trong VBA. Nếu bạnmuốn biết chi tiết về phương pháp PasteSpecial , hãy truy cập liên kết này .

Kết luận

Vì vậy, tóm lại, những là những lý do có thể gây ra lỗi thời gian chạy 1004: PasteSpecial Method od Range Class Failed trong mã của bạn. Tôi hy vọng bạn đã hiểu rõ tất cả các điểm và những điều đó sẽ giúp ích cho bạn rất nhiều trong tương lai. Bạn có biết lý do nào khác không? Và bạn có vấn đề gì không? Hãy hỏi chúng tôi. Và đừng quên truy cập trang web của chúng tôi ExcelWIKI để biết thêm các bài đăng và cập nhật.

Hugh West là một nhà phân tích và huấn luyện viên Excel giàu kinh nghiệm với hơn 10 năm kinh nghiệm trong ngành. Ông có bằng Cử nhân Tài chính Kế toán và bằng Thạc sĩ Quản trị Kinh doanh. Hugh có niềm đam mê giảng dạy và đã phát triển một phương pháp giảng dạy độc đáo, dễ hiểu và dễ theo dõi. Kiến thức chuyên môn về Excel của ông đã giúp hàng nghìn sinh viên và chuyên gia trên toàn thế giới cải thiện kỹ năng và xuất sắc trong sự nghiệp của họ. Thông qua blog của mình, Hugh chia sẻ kiến ​​thức của mình với mọi người, cung cấp các hướng dẫn Excel miễn phí và đào tạo trực tuyến để giúp các cá nhân và doanh nghiệp phát huy hết tiềm năng của họ.