Я хочу добавить URL-адрес ответа формы в столбец А листа ответов формы, желательно в более чистом формате, чем полный URL-адрес.
Я попробовал оба приведенных ниже кода. Первый работает, но помещает URL в последний столбец. Второй работает только один раз, тогда я не могу заставить его повторить. с на форме отправки триггеров установлен.
Я включил ссылку на контрольный лист и форму, которую я использовал.
// first attempt
function getEditResponseUrls(){
var formID = '1CDQd-FP9FL9K-1zKsJwKRJhCSU5taxod7PSDtPNn6YM';
var sheetName = 'Raw Data';
var columnName = 'Edit Link' ;
var startRow = 2;
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.openById(formID)
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);
}
}
}
//second attempt
// Create the Form Submit Trigger
function createFormTrigger() {
var triggerName = "https://docs.google.com/forms/d/e/1FAIpQLSeil-bcfuPNPATPG_9EgnnoZhqBezcthBcE62epuInkXiy5Pw/viewform?usp=sf_link";
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
ScriptApp.newTrigger(triggerName)
.forSpreadsheet(spreadsheet)
.onFormSubmit()
.create();
}
function addFormResponseUrl(e) {
// Get the Google Form linked to the response
var responseSheet = e.range.getSheet();
var googleFormUrl = responseSheet.getFormUrl();
var googleForm = FormApp.openByUrl(googleFormUrl);
// Get the form response based on the timestamp
var timestamp = new Date(e.namedValues.Timestamp[0]);
var formResponse = googleForm.getResponses(timestamp).pop();
// Get the Form response URL and add it to the Google Spreadsheet
var responseUrl = formResponse.getEditResponseUrl();
var row = e.range.getRow();
var responseColumn = 1; // Column where the response URL is recorded.
responseSheet.getRange(row, responseColumn).setValue(responseUrl);
}
https://docs.google.com/spreadsheets/d/1TOj72oc3Lboku0IvhsgHFi0utKG8rIZqT7IFlsKion4/edit?usp=sharing
https://forms.gle/AdbiXkazo6VoqJtm8
Я ожидаю, что URL-адрес ответа будет в столбце A после отправки формы.
Бонусные баллы - это способ сделать URL кликабельным и автоматически выглядеть чище ... например, просто добавить слово «Ссылка» в каждой ячейке в столбце «А», которое является гиперссылкой на форму, или даже преобразовать каждый из них. URL-адрес кнопки в столбце A.
Я играю со скриптом приложения Google в течение недели, поэтому любая помощь или руководство очень приветствуются.