Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

442
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!