Câu trả lời ngắn
Các liên kết trỏ đến một Q & A có hai câu trả lời nhưng không trong số họ có vẻ với tôi là thích hợp. Mã của một trong những câu trả lời là không đầy đủ và cả hai đều gửi email, vì vậy việc áp dụng quá phức tạp để được sử dụng làm điểm bắt đầu.
Dưới đây là một kịch bản dễ dàng hơn để áp dụng.
Hướng dẫn
Tạo một mẫu thử nghiệm và lưu ý ID mẫu (giữa ../d/
và /edit
trong url).
Đặt biểu mẫu để gửi phản hồi đến một bảng tính mới.
Bạn sẽ được chuyển hướng đến bảng tính mới. Lưu ý tên trang tính đang hoạt động (đổi tên nó nếu bạn muốn) và thêm tiêu đề vào cột sẽ được sử dụng để giữ các URL chỉnh sửa phản hồi, nghĩa là Edit Url
. LƯU Ý: Viết hoa là rất quan trọng, vì vậy hãy thật cẩn thận về cách bạn viết nó.
Chuyển đến Tools > Script editor
để thêm dự án Google Apps Script giới hạn vào bảng tính.
Thay thế mã mặc định bằng mã bên dưới (nhớ chỉnh sửa các biến toàn cục theo trường hợp của bạn).
Lưu dự án và sau đó thêm trình kích hoạt biểu mẫu có thể cài đặt (nếu bạn nhận được hộp thoại "Yêu cầu ủy quyền", nhấp vào "Xem lại quyền" và sau đó "Cho phép").
Gửi một số câu trả lời mẫu để kiểm tra giải pháp.
Mã
/*
* Global Variables
*/
// Form URL
var formURL = 'https://docs.google.com/forms/d/form-id/viewform';
// Sheet name used as destination of the form responses
var sheetName = 'Form Responses 1';
/*
* Name of the column to be used to hold the response edit URLs
* It should match exactly the header of the related column,
* otherwise it will do nothing.
*/
var columnName = 'Edit Url' ;
// Responses starting row
var startRow = 2;
function getEditResponseUrls(){
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues();
var columnIndex = headers[0].indexOf(columnName);
var data = sheet.getDataRange().getValues();
var form = FormApp.openByUrl(formURL);
for(var i = startRow-1; i < data.length; i++) {
if(data[i][0] != '' && data[i][columnIndex] == '') {
var timestamp = data[i][0];
var formSubmitted = form.getResponses(timestamp);
if(formSubmitted.length < 1) continue;
var editResponseUrl = formSubmitted[0].getEditResponseUrl();
sheet.getRange(i+1, columnIndex+1).setValue(editResponseUrl);
}
}
}
Tài nguyên bổ sung
Tôi đã tạo ra một ý chính với nội dung từ câu hỏi và câu trả lời. b / c này tôi đang khám phá những cách để cộng tác tốt hơn giữa những người dùng cuối viết mã.