Respuesta corta
El enlace apunta a un Q&A que tiene dos respuestas, pero ninguna de ellas me parece apropiada. Es decir, el código de una de las respuestas está incompleto y ambos envían correos electrónicos, por lo que la adopción es demasiado compleja para ser utilizada como punto de partida.
A continuación se muestra un script que es más fácil de adoptar.
Instrucciones
Cree un formulario de prueba y anote la ID del formulario (entre ../d/
y /edit
en la url).
Configure el formulario para enviar respuestas a una nueva hoja de cálculo.
Serás redirigido a la nueva hoja de cálculo. Anote el nombre de la hoja activa (cámbiele el nombre si lo desea) y agregue un encabezado a la columna que se utilizará para contener las URL de edición de respuesta, es decir Edit Url
. NOTA: La capitalización es muy importante, así que tenga mucho cuidado sobre cómo escribirla.
Vaya a Tools > Script editor
para agregar un proyecto de Google Apps Script limitado a la hoja de cálculo.
Reemplace el código predeterminado con el siguiente código (recuerde editar las variables globales según su caso).
Guarde el proyecto y luego agregue un activador de cumbre de forma instalable (si obtiene un cuadro de diálogo "Se requiere autorización", haga clic en "Revisar permisos" y luego "Permitir").
Envíe algunas respuestas de muestra para probar la solución.
Código
/*
* 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);
}
}
}
Recursos adicionales
Creé una esencia con el contenido de la pregunta y la respuesta. Este b / c estoy explorando formas de colaborar mejor entre los usuarios finales que escriben código.