Trataré de mantener esto breve y dulce.
Estoy haciendo un formulario de empaque usando Hojas de cálculo de Google. Los usuarios completan el formulario utilizando los menús desplegables de la hoja de cálculo y presionan el botón Submit para enviar los datos a las Packaging Form Responses . Este script funciona perfectamente. Ahora estoy luchando por escribir un script para que la casilla de verificación en la celda O13 complete automáticamente los datos en la sección "Tiempo de espera" en la fila 13 con la hora actual. Notarás que tengo la hora actual dividida en diferentes celdas en la fila 24 (hh, mm, am/pm). Básicamente, cuando la casilla de verificación es = VERDADERO, quiero que los datos de la fila 24 se publiquen en la sección "Tiempo de espera" de la fila 13 (nota al margen: las filas 22-24 se ocultarán cuando el formulario esté activo). No he usado mucho la función onEdit(), así que podría usar algo de ayuda aquí.
Aquí está mi código hasta ahora:
function onEdit(e) { var range = e.range; var spreadSheet = e.source; var column = range.getColumn; var row = range.getRow; var hours = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Packaging Form').getRange('H24').getValue(); var minutes = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Packaging Form').getRange('I24').getValue(); var ampm = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Packaging Form').getRange('J24').getValue(); if(column == 15 && row == 13){ SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Packaging Form').getRange('D13').setValue(hours); SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Packaging Form').getRange('F13').setValue(minutes); SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Packaging Form').getRange('H13').setValue(ampm) } } No estoy seguro de qué está mal aquí, creo que tiene que ver con mis variables locales hours , minutes y ampm .
Además, aún no he llegado tan lejos, pero me gustaría que la hora actual que se publica en la fila 13 se borre cuando la casilla de verificación ya no = VERDADERO (es decir, cuando el usuario desmarca la casilla de verificación "Usar hora actual", el se borran los datos de la sección "Tiempo de espera"). Cualquier ayuda será enormemente apreciada, gracias.
Reemplazar
var column = range.getColumn; var row = range.getRow;por
var column = range.getColumn(); var row = range.getRow();o mejor
var column = range.columnStart; var row = range.rowStart; PD: también puede cambiar SpreadsheetApp.getActiveSpreadsheet() por hoja de spreadsheet .