Script tạo sheet mới theo mẫu
Show Google Form và Google Sheet là 2 dịch vụ quá đỗi thân thuộc với người dùng. Nhưng còn liên kết chúng với Apps Script và ứng dụng trong thực tiễn như thế nào thì hôm nay HocGgSheet.com sẽ giới thiệu đến với các bạn.
File luyện tậpTạo bản sao về Drive của bạn để xem và chỉnh sửa code nhé https://docs.google.com/spreadsheets/d/1oUruazoQd4l5dQBy97-HpNCsxV2Rminy25yjpu4mnJw/edit?usp=sharing Google Form: Mô tả ví dụ và Chuẩn bịCho 1 form đơn giản như hình trên và liên kết với sheet “answer” trong file Google Sheet như sau (có sẵn một vài mẫu): Ở file Google Sheet, mình tạo thêm 1 sheet tên là “database”, 2 cột “Phê duyệt” và “Ngày chỉnh sửa”. Mục đích của chúng là:
Xác thực dữ liệu cho cột C “Phê duyệt”Ta thấy “Phê duyệt” có 2 giá trị là “Duyệt” và “Không duyệt”. Vậy nên có thể xác thực dữ liệu cho nó Xác thực dữ liệu cho “Phê duyệt”Các bạn lưu ý, chúng ta không cần Xác thực cho cả cột C. Mà chỉ cần Xác thực cho Những dòng hiện có và Dòng trắng tiếp theo. Ví dụ, mình có 9 dòng đầu là Những dòng hiện có, vậy thì chỉ cần Xác thực cho 9 dòng đó và dòng thứ 10. Mục đích là để khi có người gửi form mới, bản ghi mới sẽ tự động lấy định dạng (xác thực) của dòng trước Code hoàn chỉnh
Giải thích1. Biến toàn cục
2. Chương trình chínhSử dụng trigger onEdit() để khi thay đổi giá trị ở cột “Phê duyệt” thì sẽ tiến hành chạy chương trình
“Phê duyệt” nằm ở cột C, tức cột 3, và nếu nó bằng “Duyệt” hoặc “Không duyệt” thì sẽ lưu bản ghi vào trong database
Đây là cách để lấy thời điểm hiện tại ra và ghi vào ô bên cột D. Hàm offset có chức năng dóng hàng dóng cột. Ở đây, nó dóng sang ô cùng hàng với activeCell bên cột D 3 câu lệnh cuối là kỹ thuật Di chuyển dòng từ sheet này sang sheet khác
Biến luu dùng để ghi giá trị của dải ô bao gồm các ô cùng hàng với activeCell
Dòng này để ghi dải ô của biến luu vào Dòng cuối cùng tiếp theo trong sheet “database”
Sau cùng là xóa dòng đã duyệt bên sheet “answer” Các bạn có thể ứng dụng ví dụ trên vào các trường hợp sau:
|