Menu

Hỗ trợ xử lý lỗi khi chạy macro VBA

Triệu Uyên Lài 14/03/2026 16:46 370 lượt xem 3 trả lời

Chào các anh em trong diễn đàn Sheet & Excel!

Mình đang làm một project nhỏ tự động hóa báo cáo bán hàng bằng VBA. Project này bao gồm việc lấy dữ liệu từ nhiều file Excel con, xử lý và tổng hợp vào một file chính. Tuy nhiên, khi chạy macro thì mình gặp phải một lỗi khá khó chịu, nó báo 'Run-time error '1004': Application-defined or object-defined error'. Lỗi này xuất hiện ở dòng code mà mình dùng để copy dữ liệu từ sheet này sang sheet khác.

Đây là đoạn code mình đang gặp vấn đề:

' Copy dữ liệu từ Sheet1 sang Sheet2
Sheets("Sheet1").Range("A1:D100").Copy Destination:=Sheets("Sheet2").Range("A1")

Mình đã kiểm tra đi kiểm tra lại nhưng không thấy có gì sai sót trong cú pháp. Có thể có nguyên nhân nào khác dẫn đến lỗi này không ạ? Ví dụ như file Excel bị khóa, hay sheet đang ẩn chẳng hạn?

Anh em nào có kinh nghiệm xử lý lỗi VBA này hoặc gặp trường hợp tương tự thì chỉ giúp mình với. Mình đang bí quá!

Cảm ơn mọi người đã đọc bài!

2

Chào bạn,

Lỗi 1004 này khá phổ biến khi thao tác với đối tượng hoặc ứng dụng Excel trong VBA. Với kinh nghiệm của mình, lỗi này thường xảy ra khi:

  • Bạn cố gắng thao tác với một đối tượng (sheet, range, workbook) không tồn tại hoặc đã bị đóng.
  • Tên sheet hoặc workbook bạn gọi ra không đúng.
  • Có thể bạn đang copy/paste dữ liệu vào một vùng không hợp lệ hoặc có định dạng xung đột.

Bạn có thể chia sẻ cụ thể hơn đoạn code copy dữ liệu đó không? Mình nghĩ nếu xem chi tiết hơn thì sẽ dễ dàng xác định nguyên nhân và đưa ra giải pháp chính xác nhất.

5

Chào bạn, lỗi 1004 này đúng là "ám ảnh" thật! Mình cũng từng gặp tình huống tương tự khi làm việc với việc copy dữ liệu giữa các sheet.

Đoạn code bạn chia sẻ có vẻ như đang gặp vấn đề với việc xác định đúng đối tượng hoặc vùng dữ liệu.

Bạn đã thử kiểm tra xem tên sheet nguồn và đích có chính xác 100% không? Đôi khi chỉ sai một ký tự nhỏ thôi cũng đủ gây lỗi. Hoặc có thể vùng đích bạn copy đến đang bị khóa hoặc có dữ liệu bảo vệ nào đó mà macro không ghi đè được?

Nếu bạn có thể post thêm vài dòng code xung quanh đoạn copy dữ liệu đó lên thì mọi người sẽ dễ hình dung hơn.

0

Chào bạn,

Lỗi 'Run-time error '1004'' này đúng là "nhức đầu" thật. Với kinh nghiệm của mình, ngoài các nguyên nhân mà bạn đã được gợi ý, đôi khi lỗi này còn xuất hiện do quyền truy cập file/thư mục bị hạn chế hoặc Excel đang ở chế độ bảo vệ/chỉ đọc mà bạn không biết.

Nếu bạn đã kiểm tra kỹ các đối tượng và tên gọi, thử xem có thể bật chế độ "Enable Editing" hoặc kiểm tra quyền truy cập vào các file nguồn xem sao nhé. Nếu vẫn không được, bạn có thể post chi tiết đoạn code copy dữ liệu lên để mọi người cùng xem. Đôi khi chỉ là một dấu chấm, dấu phẩy hay tên sheet "nhầm lẫn" nhỏ thôi cũng gây ra lỗi này đấy!

5

Bạn cần đăng nhập để trả lời chủ đề này.

Đăng nhập Đăng ký