Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

438
Vistas
¿Cómo confirmar los cambios realizados en la celda activa antes de ejecutar el script? (Hojas de cálculo de Google / Google Apps Script)

Estoy creando un formulario de envío en Hojas de cálculo de Google con Google Apps Script. El formulario está en una página, y los envíos se mueven a una segunda página oculta. Cuando los usuarios completan el formulario, presionan un botón en la página de envío para activar el script.

El problema con el que me encuentro es que cuando el usuario completa la última celda y luego hace clic en el botón, los datos que se ingresan en la última celda aún no parecen estar comprometidos con la página, por lo que no son tomados por el script (usando sheet_sub.getRange("C7").getValue(); ). Traté de activate() otra celda y flush() , pero eso no parece funcionar. Todo lo demás sobre el guión es funcional.

¿Cómo puedo asegurarme de que los datos se guarden en la hoja para poder acceder a ellos? Gracias de antemano por su ayuda.

Editar: Incluyendo el código a continuación

 function submitNomination() { var sheet_sub = getSheet("Submission Form"); var sheet_list = getSheet("List of Nominations"); // Find last row in list var lastRow = sheet_list.getRange("A1").getNextDataCell(SpreadsheetApp.Direction.DOWN).getRow(); // Grab values from submission form var nominee = sheet_sub.getRange("C5:F5").getValue(); var nominator = sheet_sub.getRange("C6:F6").getValue(); var category = sheet_sub.getRange("C7:F7").getValue(); var reason = sheet_sub.getRange("C8:F12").getValue(); // Enter values into the list sheet_list.getRange('R'+(lastRow+1)+'C1').setValue(Utilities.formatDate(new Date(), "America/Detroit","yyyy-MM-dd HH:mm:ss")); sheet_list.getRange('R'+(lastRow+1)+'C2').setValue(nominee); sheet_list.getRange('R'+(lastRow+1)+'C3').setValue(nominator); sheet_list.getRange('R'+(lastRow+1)+'C4').setValue(reason); sheet_list.getRange('R'+(lastRow+1)+'C5').setValue(category); // Clear submission form sheet_sub.getRange("C5:F12").clearContent(); } function getSheet(sheetName){ var sheet = SpreadsheetApp.getActive().getSheetByName(sheetName); return sheet; }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Siempre que el valor de la última celda no se confirme, solo existe en el lado del cliente de la sesión del navegador del usuario y no se puede recuperar desde Google Sheets / Apps Script o Sheets API.

Piense en los usuarios que trabajan en la misma hoja de cálculo. Antes de que el usuario A confirme sus cambios, el usuario B no los verá en su versión de la hoja de cálculo, ni tendrá ningún poder para confirmar esos cambios.

Entonces, si desea que las modificaciones de los usuarios se puedan recuperar al hacer clic en el botón, la única forma es solicitar al usuario que confirme sus cambios antes de presionar el botón. Puede hacerlo, por ejemplo, con una alerta/mensaje que aparece al hacer clic en el botón y le pregunta al usuario si ha realizado los cambios antes de hacer clic en el botón.

Alternativamente, puede pensar en una implementación sin un botón.

Por ejemplo, puede publicar su secuencia de comandos como una aplicación web y pegar un hipervínculo a la URL de la aplicación web en una celda que actúa como un botón:

ingrese la descripción de la imagen aquí

Esto puede parecer menos estético que un botón real; sin embargo, al hacer clic en la celda del botón, los últimos cambios del usuario se confirmarán automáticamente.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda