Menu

Tự động hóa việc cập nhật dữ liệu giữa các sheet bằng VBA

Giang Vân Huân 19/03/2026 03:49 565 lượt xem 3 trả lời

Chào các bạn, mình là thành viên mới của diễn đàn. Dạo này mình đang vật lộn với việc cập nhật dữ liệu giữa nhiều sheet trong một file Excel. Cụ thể là khi mình thay đổi một giá trị ở sheet 'Nguồn', mình muốn giá trị tương ứng ở sheet 'Báo cáo' cũng tự động cập nhật theo.

Mình đã thử tìm hiểu và thấy có nhiều cách để làm việc này, nhưng có vẻ cách dùng VBA là hiệu quả và linh hoạt nhất. Tuy nhiên, mình mới bắt đầu học VBA nên còn khá bỡ ngỡ.

Mình muốn hỏi các cao thủ trong diễn đàn có ai có kinh nghiệm về việc này không ạ? Liệu có thể viết một đoạn code VBA để khi mình thay đổi dữ liệu ở sheet 'Nguồn', thì dữ liệu tương ứng ở sheet 'Báo cáo' (dựa trên một mã ID chung) sẽ được cập nhật ngay lập tức không?

Ví dụ, nếu ở sheet 'Nguồn', ô A2 là mã sản phẩm, ô B2 là tên sản phẩm. Mình muốn khi thay đổi tên sản phẩm ở B2, thì tên sản phẩm tương ứng với mã sản phẩm đó ở sheet 'Báo cáo' cũng được cập nhật theo.

Rất mong nhận được sự giúp đỡ và chia sẻ từ các anh chị em. Nếu có đoạn code mẫu thì càng tuyệt vời ạ!

Xin cảm ơn!

4

Chào bạn,

Việc tự động hóa cập nhật dữ liệu giữa các sheet bằng VBA đúng là rất tiện lợi, nhất là khi làm với file lớn. Mình hiểu cảm giác bỡ ngỡ khi mới bắt đầu với VBA.

Bạn có thể chia sẻ cụ thể hơn về cách bạn muốn cập nhật dữ liệu không? Ví dụ, nếu ở sheet 'Nguồn' bạn thay đổi ở cột A, thì ở sheet 'Báo cáo' bạn muốn cập nhật ở cột nào, dựa trên giá trị nào ở 'Nguồn'?

Nếu dùng sự kiện Worksheet_Change thì bạn cần xác định rõ vùng dữ liệu nào cần theo dõi thay đổi để tránh code chạy không cần thiết nha.

1

Chào bạn, mừng bạn đến với diễn đàn! Việc tự động hóa cập nhật dữ liệu giữa các sheet bằng VBA là một bài toán rất hay và hoàn toàn có thể giải quyết được.

Bạn đang gặp khó khăn ở đoạn nào vậy? Nếu có thể chia sẻ cụ thể hơn về cấu trúc dữ liệu của bạn (ví dụ: cột nào cần so sánh, cột nào cần cập nhật, điều kiện cập nhật là gì) thì mọi người sẽ dễ dàng đưa ra gợi ý code phù hợp hơn.

Thường thì mình hay dùng sự kiện Worksheet_Change để kích hoạt code khi có thay đổi trên sheet 'Nguồn'. Bạn thử tìm hiểu về sự kiện này xem sao nhé!

3

Chào bạn,

Mình hiểu cảm giác "vật lộn" với việc cập nhật dữ liệu giữa các sheet, nhất là khi mới làm quen với VBA. Cách bạn nghĩ dùng VBA là rất đúng đắn, nó cho phép bạn tùy biến và tự động hóa mọi thứ.

Để code chạy hiệu quả, bạn có thể cho biết thêm về mối liên hệ giữa dữ liệu ở sheet 'Nguồn' và sheet 'Báo cáo' không? Ví dụ, bạn dùng cột nào để định danh các bản ghi (ví dụ: Mã sản phẩm, Mã nhân viên), và khi thay đổi ở 'Nguồn', bạn muốn cập nhật những cột nào ở 'Báo cáo'?

Việc sử dụng Worksheet_Change là một hướng đi rất tốt. Đôi khi, chỉ cần một vài dòng code đơn giản trong sự kiện này là có thể giải quyết gọn gàng vấn đề của bạn rồi.

3

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

Đăng nhập Đăng ký