Menu

Tự động hóa gửi email thông báo khi có thay đổi trong file Excel bằng Google Apps Script

Châu Bảo Lộc 05/06/2026 23:50 284 lượt xem 3 trả lời

Chào các anh chị em trong diễn đàn,

Dạo này mình đang mày mò với Google Apps Script để tự động hóa một số tác vụ trên Google Sheets. Hôm nay, mình muốn chia sẻ một mẹo nhỏ mà mình vừa khám phá ra, hy vọng sẽ hữu ích cho những ai làm việc với dữ liệu và cần thông báo ngay khi có sự thay đổi.

Chuyện là, mình có một file Google Sheet theo dõi tiến độ dự án, và sếp muốn biết ngay khi có bất kỳ cập nhật nào về trạng thái công việc. Thay vì cứ phải mở file ra xem thủ công, mình đã viết một đoạn script nhỏ để tự động gửi email thông báo cho mình (hoặc người nhận khác) mỗi khi có ô nào đó trong một phạm vi nhất định bị thay đổi.

Về cơ bản, mình sử dụng hàm onEdit(e) của Google Apps Script. Hàm này sẽ tự động chạy mỗi khi có một ô nào đó được chỉnh sửa trong sheet. Bên trong hàm này, mình sẽ kiểm tra xem ô nào vừa được sửa, phạm vi sửa đổi có nằm trong vùng mình quan tâm không. Nếu có, script sẽ lấy thông tin về ô đó (tên sheet, địa chỉ ô, giá trị cũ, giá trị mới) và gửi một email thông báo.

Đây là đoạn code minh họa:

function onEdit(e) {
  var range = e.range;
  var sheet = range.getSheet();
  var editedRow = range.getRow();
  var editedCol = range.getColumn();
  
  // Chỉ theo dõi thay đổi trong Sheet 'DuLieu' và từ cột C trở đi
  if (sheet.getName() == "DuLieu" && editedCol >= 3) {
    var subject = "Cập nhật tiến độ dự án";
    var body = "Có thay đổi trong file theo dõi dự án:\n" +
               "Sheet: " + sheet.getName() + "\n" +
               "Ô: " + range.getA1Notation() + "\n" +
               "Giá trị cũ: " + e.oldValue + "\n" +
               "Giá trị mới: " + e.value;
    
    // Gửi email đến địa chỉ của bạn
    MailApp.sendEmail("your.email@example.com", subject, body);
  }
}

Lưu ý: Bạn cần thay thế "DuLieu" bằng tên sheet bạn muốn theo dõi và "your.email@example.com" bằng địa chỉ email nhận thông báo.

Cách này thực sự tiết kiệm thời gian và giúp mình nắm bắt thông tin kịp thời. Mọi người thấy sao, có ý tưởng nào hay hơn để cải thiện không ạ?

5

Hay quá bạn ơi! Mình cũng đang tìm cách tự động hóa mấy vụ gửi báo cáo hàng ngày trên Google Sheets. Bạn chia sẻ thêm về đoạn script đó được không? Cụ thể là bạn dùng trigger nào để script chạy khi có thay đổi vậy? Có cần thiết lập gì phức tạp không ạ?

3

Cái này hay quá bạn ơi! Mình cũng đang muốn áp dụng cho bên mình, bên mình có mấy cái báo cáo cần cập nhật liên tục. Bạn có thể chia sẻ chi tiết hơn về cách script nhận diện sự thay đổi trong file không? Dùng trigger nào để nó tự động chạy lúc có ai đó sửa dữ liệu vậy bạn? Nghe có vẻ rất tiện lợi!

3

Cái này đúng là "chìa khóa vàng" cho ai muốn tiết kiệm thời gian và tăng hiệu quả làm việc với Google Sheets. Mình cũng từng vật lộn với việc thông báo thủ công. Bạn có thể chia sẻ cụ thể hơn về cách script của bạn nhận diện được thay đổi nào (chỉ cần sửa 1 ô hay cả dòng/cột mới kích hoạt) và cách bạn lọc những thay đổi quan trọng để gửi email không? Đôi khi file có nhiều thay đổi nhỏ không cần báo cáo ngay.

2

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

Đăng nhập Đăng ký