Короткий ответ
В ссылке указывает на Q & A , который имеет два ответа , но не из них смотрит на меня , чтобы быть наши правила. То есть код одного из ответов неполон, и оба они отправляют электронные письма, поэтому принятие слишком сложно для использования в качестве отправной точки.
Ниже приведен скрипт, который легче принять.
инструкции
Создайте тестовую форму и запишите идентификатор формы (между ../d/
и /edit
в URL).
Установите форму для отправки ответов в новую электронную таблицу.
Вы будете перенаправлены на новую электронную таблицу. Обратите внимание на активное имя листа (переименовать его , если вы хотите) и добавить заголовок в столбец будет использоваться для хранения редактирования URL - ответа, то есть Edit Url
. ПРИМЕЧАНИЕ: использование заглавных букв очень важно, поэтому будьте очень осторожны при написании.
Перейдите, чтобы Tools > Script editor
добавить проект Google Apps Script, ограниченный таблицей.
Замените код по умолчанию на код ниже (не забывайте редактировать глобальные переменные в соответствии с вашим случаем).
Сохраните проект, а затем добавьте устанавливаемый триггер саммита формы (если появляется диалоговое окно «Требуется авторизация», нажмите «Просмотр разрешений», а затем «Разрешить»).
Отправьте несколько примеров ответов, чтобы проверить решение.
Код
/*
* 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);
}
}
}
Дополнительные ресурсы
Я создал суть с содержанием из вопроса и ответа. В этом б / к я изучаю способы лучшего сотрудничества между конечными пользователями, которые пишут код.