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

181
Views
Apps Script Checkbox True/False para copiar entre dos hojas, ¿es posible esta lógica?

No estoy seguro de cómo titular mejor esto, así que me disculparé de antemano. Estoy tratando de determinar si algo que espero hacer es posible, porque hasta ahora no veo cómo, pero si es así, me gustaría aprender. Tengo una secuencia de comandos bastante simple a continuación, pero en este momento, tal como está escrito, todo lo que hace es mirar la hoja 2 y si se marca una casilla de verificación en D10, marca la casilla de verificación en la hoja 3 en D10. Esto es perfecto y funciona como se esperaba. También lo tengo configurado para que si desmarco la casilla de verificación en D10 en la hoja 2, desmarca la casilla de verificación en D10 en la hoja 3.

La lógica que espero ver si puedo incorporarla es que si ahora desmarco D10 en la hoja 3, desmarcará D10 en la hoja 2 . Lo intenté de diferentes maneras agregando el reverso de lo que tengo aquí, pero no importa lo que haga, solo vuelve a marcar la casilla en la hoja 3 tan pronto como la desmarco, y la casilla en la hoja 2 nunca cambia.

 function onEdit(e) { var sh = SpreadsheetApp.getActiveSpreadsheet(); var sheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('sheet2'); var sheet3 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('sheet3'); if (sheet2.getRange('D10').isChecked()== true){ sheet3.getRange('D10').check(); } else if (sheet2.getRange('D10').isChecked()== false){ sheet3.getRange('D10').uncheck(); } {}}

El anterior era mi código original, pero luego probé algo como el siguiente y obtuve el mismo resultado. ¿Alguna idea o consejo?

 function onEdit(e) { var sh = SpreadsheetApp.getActiveSpreadsheet(); var sheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('sheet2'); var sheet3 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('sheet3'); if (sheet2.getRange('D10').isChecked()== true){ sheet3.getRange('D10').check(); } if (sheet3.getRange('D10').isChecked()== false){ sheet2.getRange('D10').uncheck(); } else if (sheet2.getRange('D10').isChecked()== false){ sheet3.getRange('D10').uncheck(); } {}}
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Creo que su objetivo es el siguiente.

  • Desea marcar la casilla de verificación de "D10" de "hoja3", cuando la casilla de verificación de "D10" está marcada, y viceversa.
  • Desea desmarcar la casilla de verificación de "D10" de "hoja 3", cuando la casilla de verificación de "D10" no está marcada, y viceversa.
  • Desea ejecutar el script cuando la casilla de verificación "D10" en "hoja2" y "hoja3" está marcada y desmarcada.

En su secuencia de comandos, por ejemplo, en la etapa inicial, cuando ya se ha marcado "D10" de "hoja2", "D10" de "hoja3" se marca incluso cuando "D10" de "hoja3" no está marcado. Pensé que esta podría ser la razón de su problema. En este caso, ¿qué tal el siguiente script de muestra?

Guión de muestra:

 function onEdit(e) { const {range, source} = e; const sheetName = range.getSheet().getSheetName(); const obj = {"sheet2": "sheet3", "sheet3": "sheet2"}; if (range.getA1Notation() == "D10" && obj[sheetName]) { source.getSheetByName(obj[sheetName]).getRange("D10")[range.isChecked() ? "check" : "uncheck"](); } }
  • En este script de muestra, se usa el objeto de evento de onEdit .
  • Para cambiar el nombre de la hoja, se usa el objeto JSON.

Nota:

  • Si desea utilizar otros nombres de hoja, modifique const obj = {"sheet2": "sheet3", "sheet3": "sheet2"}; .
  • En este script de muestra, se usa getA1Notation() para verificar la coordenada de la celda. Cuando desee lograr esto usando el objeto de evento, también puede modificar range.getA1Notation() == "D10" a range.columnStart == 4 && range.rowStart == 10 .

Referencia:

  • Objetos de evento
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!