Bài 7: Giới thiệu các Trigger App Script – onEdit onOpen
https://hocggsheet.com/gioi-thieu-trigger-app-script-onedit-onopen/
Last updated
https://hocggsheet.com/gioi-thieu-trigger-app-script-onedit-onopen/
Last updated
onEdit() và onOpen() là hai trigger cơ bản và phổ biến nhất của App Script. Để sử dụng chúng, bạn chỉ đơn giản là đổi tên function của bạn thành onEdit hoặc onOpen. Ví dụ:
01
function onEdit() {}
Để đọc thêm về các trigger, các bạn có thể truy cập vào link sau:
https://developers.google.com/apps-script/guides/triggers/
Trong bài này mình sẽ đưa ra các ví dụ cụ thể về việc ứng dụng chúng trong App Script Sheet. Để xem file luyện tập, các bạn hãy kéo xuống dưới cùng nhé. Còn đây là video hướng dẫn:
Một function có tên là onEdit sẽ: chạy chương trình khi người dùng (user) thay đổi một giá trị bất kì trong bảng tính Google Sheet
Tiếp nối ví dụ của bài 6: câu lệnh if , lần này mình thực hiện yêu cầu sau:
Hình minh họa ví dụ onEdit
Trên Google Sheet, mình thêm một cột bên trái cột A cũ trong bài 6. Cột này được Xác thực dữ liệu, chỉ nhận 2 giá trị “Duyệt” hoặc “Không duyệt”
Khi chọn những lựa chọn ở cột A mới, ô chúng ta đang bấm vào được gọi là Active cell
Khi chọn “Duyệt”, dải ô gồm các ô cùng hàng với Active cell sẽ được di chuyển sang sheet1 ngay lập tức
Nếu chọn “Không duyệt” hoặc giá trị khác, thì để nguyên, không làm gì cả
Biến
Ý nghĩa
activeCell
ô đang được kích hoạt ở Google Sheet
activeCellValue
giá trị của activeCell
range
lấy dải ô chứa các giá trị cùng hàng với activeCell
dich
đích đến khi thực hiện Di chuyển hoặc Copy dòng
Một function có tên là onOpen sẽ: chạy chương trình khi user mở file Google Sheet, hoặc làm mới (refresh) file. Ngoài ra, nếu file Google Sheet được kết nối với Google Form (biểu mẫu) thì onOpen sẽ chạy code mỗi khi có người gửi form (new response)
Để minh họa ví dụ onOpen, mình viết một đoạn code đơn giản có mục đích như sau:
Khi user Làm mới / Mở file Google Sheet, ô H1 trong sheet0 sẽ ghi số lượng dòng có dữ liệu hiện đang có trong sheet0
numRow dùng để lưu lại số lượng dòng có dữ liệu hiện đang có trong sheet0
Ví dụ nâng cao minh họa onOpen
Để cải tiến code của ví dụ onOpen, mình muốn ô H1 hiện lên thông báo: “Hiện có … dòng”, với … là biến numRow. Để nối chuỗi, ta dùng dấu cộng (+). Lưu ý nhớ để kí tự trống ở sau hoặc trước các chuỗi nối.
https://docs.google.com/spreadsheets/d/1Xtibys_azXe7DcQsgYno6yYEbNZo6CALrPd5zsq3d2s/edit#gid=0
Lưu ý: để xem, chỉnh sửa file và code, các bạn vui lòng chọn File (tệp) -> Make a copy (copy) để Copy file vào Google Drive của các bạn nhé.