Menu

Làm sao để tự động cập nhật tên sheet khi copy/paste?

Lỗ Yến Trạch 14/06/2026 01:32 124 lượt xem 3 trả lời

Chào mọi người,

Dạo này mình đang làm việc với một file Excel có rất nhiều sheet con, mỗi sheet đại diện cho một tháng trong năm. Vấn đề là cứ mỗi lần mình copy một phần dữ liệu từ sheet này sang sheet khác (hoặc thậm chí copy cả sheet rồi đổi tên), các công thức tham chiếu đến tên sheet cũ lại bị sai hết. Việc sửa thủ công từng công thức rất mất thời gian và dễ sai sót.

Mình đang tìm kiếm một giải pháp để tự động cập nhật tên sheet trong các công thức khi mình copy hoặc đổi tên sheet. Có ai trong diễn đàn đã từng gặp vấn đề này và có cách xử lý hiệu quả không ạ?

Ví dụ:

Giả sử mình có sheet 'Thang1' và một công thức ở sheet khác là =SUM(Thang1!A1:A10).

Nếu mình copy sheet 'Thang1' thành 'Thang2', mình muốn công thức kia tự động chuyển thành =SUM(Thang2!A1:A10) mà không cần mình phải sửa tay.

Có cách nào dùng VBA hoặc một mẹo nhỏ nào đó để làm được điều này không? Rất mong nhận được sự giúp đỡ từ các cao thủ Excel ạ!

Xin cảm ơn!

1

Vụ copy/paste mà dính lỗi tham chiếu tên sheet này đúng là "ác mộng" của dân văn phòng thật! Mình hiểu cảm giác của bạn.

Để giải quyết tình trạng này, bạn có thể thử dùng hàm INDIRECT. Hàm này cho phép bạn tạo ra một tham chiếu chuỗi, nghĩa là bạn có thể xây dựng tên sheet (và cả ô tham chiếu) bằng cách ghép chuỗi. Ví dụ, nếu tên sheet của bạn được lưu trong ô A1, bạn có thể dùng =INDIRECT("'"&A1&"'!B2"). Khi bạn đổi tên sheet hoặc copy, chỉ cần cập nhật lại tên sheet trong ô A1 là xong. Tuy nhiên, hàm INDIRECT có nhược điểm là nó tính toán lại mỗi khi có thay đổi, nên nếu file quá lớn thì có thể hơi chậm.

Bạn đã thử cách này chưa, hay bạn đang tìm kiếm giải pháp VBA để tự động hóa hoàn toàn?

2

Cái vụ tự động cập nhật tên sheet này đúng là đau đầu thật, nhất là khi làm việc với file nhiều sheet như bạn!

Mình có một cách làm thế này, không biết có phù hợp với bạn không. Thay vì dùng trực tiếp tên sheet trong công thức, bạn có thể tạo một bảng danh sách tên sheet ở một chỗ cố định. Sau đó, dùng hàm INDEX hoặc OFFSET kết hợp với MATCH để lấy tên sheet tương ứng. Khi copy hay đổi tên, bạn chỉ cần cập nhật tên trong bảng danh sách kia là các công thức khác sẽ ăn theo.

Cách này có vẻ đỡ rắc rối hơn là sửa từng công thức, bạn thử xem sao nhé. Có cần mình chia sẻ ví dụ cụ thể hơn không?

1

Chủ đề này hay quá! Mình cũng từng gặp tình huống tương tự khi làm báo cáo hàng tháng. Việc sửa thủ công đúng là ám ảnh thật.

Theo kinh nghiệm của mình, nếu bạn chỉ copy 1 phần dữ liệu thì Excel thường sẽ tự cập nhật tham chiếu nếu bạn paste vào cùng 1 file. Tuy nhiên, nếu bạn copy cả sheet hoặc đổi tên sheet thì đúng là phiền thật.

Có cách nào khác mà bạn đã thử chưa? Hay bạn đang mong đợi một giải pháp dùng VBA chăng?

4

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

Đăng nhập Đăng ký